




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,第二章线性表,(之三),上堂课要点回顾,链表的表示(包括有关术语、结构等)链表的实现(建表、输出、修改、插入、删除),补充:其它链表形式,循环链表双向链表静态链表,提问:怎样读取结点数据域中的信息?链表的操作要用地址,如用p.data,仅两个动作:找位置和改地址!,线性表的逻辑结构线性表的顺序存储及实现线性表的链接存储及实现顺序表和单链表的比较线性表的其他存储及实现,本章的基本内容是:,2.4顺序表和单链表的比较,存储分配方式比较,顺序表采用顺序存储结构,即用一段地址连续的存储单元依次存储线性表的数据元素,数据元素之间的逻辑关系通过存储位置来实现。单链表采用链式存储结构,即用一组任意的存储单元存放线性表的元素。用地址来反映数据元素之间的逻辑关系。,时间性能比较,时间性能是指实现基于某种存储结构的基本操作(即算法)的时间复杂度。,按位查找:顺序表的时间为(1),是随机存取;单链表的时间为(n),是顺序存取。插入和删除:顺序表平均需移动表长一半的元素,时间为(n);单链表不需要移动元素,在给出某个合适位置的指针后,插入和删除操作所需的时间仅为(1)。,空间性能比较,空间性能是指某种存储结构所占用的存储空间的大小。,定义结点的存储密度:,空间性能比较,结点的存储密度:顺序表中每个结点的存储密度为1(只存储数据元素),没有浪费空间;单链表的每个结点的存储密度1(包括数据域和指针域),有指针的结构性开销。整体结构:顺序表需要预分配存储空间,如果预分配得过大,造成浪费,若估计得过小,又将发生上溢;单链表不需要预分配空间,只要有内存空间可以分配,单链表中的元素个数就没有限制。,结论,若线性表需频繁查找却很少进行插入和删除操作,或其操作与位置密切相关时,宜采用顺序表作为存储结构;若线性表需频繁插入和删除时,则宜采用单链表做存储结构。当线性表中元素个数变化较大或者未知时,最好使用单链表实现;而如果用户事先知道线性表的大致长度,使用顺序表的空间效率会更高。,总之,根据实际问题的具体需要,加以综合平衡,才能终选定比较适宜的实现方法。,2.5线性表的其他存储及实现,特点:1、尾结点的地址域指向头结点。2、从任一结点出发均可找到表中其他结点。3、操作时仅循环条件与单链表不同:(判表空)单链表用p=NULL(不带头结点)或p.next=NULL(带头结点)循环链表用p=head(不带头结点)或p.next=head(带头结点),从单链表中某结点p出发如何找到其前驱?,head,a1,ai-1,an,ai,讨论1:,如:带头结点的空循环链表样式,注:将单链表的首尾相接,将终端结点的地址域由空改为指向头结点,构成单循环链表,简称循环链表。,head,a1,ai-1,an,ai,循环链表插入,核心算法描述:Nodes=newNode(element);s.next=p.next;p.next=s;,循环链表插入实现,与单链表的插入操作相比,差别是什么?,循环条件:p!=NULLp!=headp.next!=NULLp.next!=head,开始结点:rear.next.next终端结点:rear,其它形式的循环链表如:带尾指针的循环链表,一个存储结构设计得是否合理,取决于基于该存储结构的运算是否方便,时间性能是否提高。,如何求结点p的直接前驱,时间性能?,如何快速求得结点p的后继?,如何快速求得结点p的前驱?,讨论2:,p.next,引入一个辅助指针变量q,从首结点开始遍历,至q.next=p找到直接前驱结点;,双向链表:在单链表的每个结点中再设置一个指向其前驱结点的地址域。,双向链表,启示?,时空权衡空间换取时间,结点结构定义(P59):,常用双向循环链表,如空的双向循环链表为:,双向链表的操作插入实现,ai-1,ai,注意指针修改的相对顺序,q=newDLinkNode(x);q.prev=s.prev;q.next=s;p.prev.next=q;s.prev=q;,双向链表的操作删除实现,ai-1,ai,ai+1,结点q的指针是否需要修改?,不需要!,q.prev.next=q.next;if(q.next!=null)(q.next).prev=q.prev;,2.5应用举例,1一元多项式的数学通式?2.结点如何描述?3如何编程实现两个一元多项式相加?,一元多项式的计算,1.一元多项式的数学通式?,一元多项式的通式可表示为:,分析:一元多项式在计算机内存储时,既可用顺序表存储,又可用链表存储。但当多项式的次数很高且零系数项很多时,则更适于用链表存储(通常设计两个数据域和一个指针域)。,顺序表,链表,或,.结点结构如何描述?,classtermpublic:floatcoef;/系数intexp;/指数;如结点e为:Nodee;,e,3.如何编程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北省秦皇岛市抚宁县驻操营学区初级中学初中信息技术《比赛》说课稿
- 2025年秋新人教版三年级上册数学整册同步教案
- 一、春天的约会教学设计-2025-2026学年小学综合实践活动四年级下册鲁科版
- 2025年四级心理学考试试卷【附答案】
- 雅安雨城区2024-2025学年下学期期末考试七年级语文试卷
- 范县初中期中考试卷子(3篇)
- 常心电图及常见心电图的识别及处理
- 茶艺课考试基础简答题及答案
- 线描画展题目大全及答案
- 葡萄肥料专业知识培训总结课件
- 图形动画毕业设计
- 工会劳动竞赛课件
- 2025-2026学年苏教版小学数学五年级上册教学计划及进度表
- 2025年建筑工程-安全员C证-安全员(C证·上海)历年参考题库典型考点含答案解析
- 光伏项目施工组织设计方案
- 2025政府采购评审专家入库题库与答案
- 仪表安全知识培训课件
- 2025年三级老年人能力评估师考试题库(附答案)
- 婴幼儿营养与喂养理论知识考核试题及答案
- 工程设计图纸技术交底
- 2025甘肃行政执法资格考试模拟卷及答案(题型)
评论
0/150
提交评论