- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
合肥工业大学 计算机与信息学院 * 数据结构与算法(C++描述) 阙夏 计算机与信息学院 * * 第四章 链栈和链队列 第四章 链栈和链队列 4.1 引言 4.2 链栈 4.3 链队列 * 第四章 链栈和链队列 4.1 引言 前面已介绍的顺序栈、顺序队列的有关特性回顾与分析: 运算实现:简单,时间复杂度好。 存储特性:静态规模,编译前确定。 问题:程序的通用性和空间利用率之间的矛盾! 期望:在实际运行过程中,根据实际问题的需要临时确定存储空间,这就涉及到动态变量。 动态变量:在程序运行过程中产生和释放的变量。 与之相反的是静态变量, 静态变量:在程序运行过程中一直存在的变量。 在一般程序设计语言(如C、C++)中, 静态变量是出现在说明语句中的变量, 而动态变量则由于是在运行过程中产生,因而不会事先说明。 如何实现动态变量? 通过指针来实现:指针变量的说明,动态变量产生和释放 。 * 4.1 引言 下面依次介绍指针变量动态变量的说明,动态变量操作、产生和释放 。 (1)指针变量说明 例:变量说明语句 int m, n, *p,*q; 说明了4个变量,其中: m和n说明为int型, p,q为指向int型变量的指针,其所指示的变量名称分别为*p,*q。(动态变量) 指针和其所指示的变量之间的关系如下图所示。 10 20 p *p q *q 指针和目标变量的关系: 所谓指针指向一个变量,就是存放着目标变量的地址的值。 * 4.1 引言 (2)动态变量的操作 基本操作:和其他类型的变量类似,可以对动态变量赋值、引用。 特别要注意区分:指针赋值和动态变量赋值操作的关系和效果。 例如 语句 *p = *q; 和 p = q; 的效果存在明显的差异: 假设初始时*p=10; *q=20; 如图所示。 10 20 p *p q *q *p = *q的效果 20 10 20 p *p q *q p = q的效果 区别:一个是整型变量的赋值, 一个是指针型变量的赋值。 *p * 4.1 引言 (3)动态变量产生 动态变量需要在执行申请变量操作后才能产生,否则无效。 申请变量的操作如下:(对前面给出的变量说明) p=new int; ------产生一个int类型变量,并将该变量的地址放到指针变量p中。 (4)动态变量的释放 释放变量:将动态变量的存储空间还给系统,以便重新分配使用。 释放变量的操作: delete p; -----释放指针p所指示的变量(即*p)的存储空间 (因而使*p无效,除非重新赋值或申请) * 4.1 引言 例:阅读下面程序,写出运行结果。 int main() { int *p,*q; p=new int; q=new int; *p=10; *q=20; cout*p*qendl; *p=*q; *q=30; cout*p*qendl; p=q; *p=40; *q=50; cout*p*qendl; delete p; } 输出结果是? * 4.2 链栈 4.2.1 链表 为了避免前述的顺序存储方式在的问题规模事先难以确定的问题, 可以将表中元素用链地址连接起来构成一个表。由此而得到链表。 链表:将表中元素用链地址连接起来构成的表。 例如,下图就是一个链表的示意图,其中: 由若干称为结点的“单元”连接而成。 每个结点由两部分组成: 存放元素值的字段 存放下一个结点的地址的字段。 另外,有一个指向表头的指针(头指针)head,指示起点。
您可能关注的文档
- 05今天我看了一晚上电视 第一课时.pptx
- 1-基于Ubuntu的hadoop集群安装与配置.doc
- 02胶球清洗系统调试措施.doc
- 1-开店策略与基本理念V6.ppt
- 1-农业防治方法.ppt
- 05气硬性胶凝材料.ppt
- 002-税收筹划的基本方法.ppt
- 02 分布式控制系统的构成.ppt
- 03.合同专用条款.doc
- 02:水、钠代谢紊乱-上课.ppt
- 2021年民法典知识竞赛及答案.pdf
- 2024年银行安全生产大检查工作报告.pdf
- 2024年广西壮族自治区八步区《一级注册建筑师之建筑设计》资格考试必背100题内部题库(突破训练).docx
- 2024年广西壮族自治区田阳县《一级注册建筑师之建筑设计》资格考试题库大全(网校专用).docx
- 2022-2023年通信工程师考试《通信专业实务》历年真题高频考点汇总(附带.pdf
- 汽车售后维修接待试卷.pdf
- 2024年液体空分装置项目投资分析及可行性报告.pdf
- 六年级数学上册期末测试卷及答案(人教版).pdf
- 拖拉机农业机械化作业规范考核试卷.pdf
- 2023年广东省潮州市湘桥区城西街道春荣社区工作人员(综合考点共100题.pdf
文档评论(0)