- 1、本文档共70页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 讨论3: 单链表只能查找结点的直接后继,能不能查找直接前驱?如何实现? 答:能。只要把单链表再多开一个指针域即可(例如用*next和*prior;) 。 双向链表在非线性结构(如树结构)中将大量使用。 prior data next 这种有两个指针的链表称为双向链表。其特点是可以双向查找表中结点。参见教材P35—39。 特别:带头结点的空双向链表样式: * 在双向链表中,操作:ListLength、GetElem、LocateElem仅需要设计一个方向的指针,它们的算法描述和线性表的操作相同,但在插入、删除时有很大的不同,双向链表需要同时涉及两个方向的指针。 * 2.3.3 链表的运算效率分析 1. 查找 因线性链表只能顺序存取,即在查找时要从头指针找起,查找的时间复杂度为 O(n)。 时间效率分析 2. 插入和删除 因线性链表不需要移动元素,只要修改指针,一般情况下时间复杂度为 O(1)。 但是,如果要在单链表中进行前插或删除操作,由于要从头查找前驱结点,所耗时间复杂度为 O(n)。 * 练: 在n个结点的单链表中要删除已知结点*P,需找到它的 ,其时间复杂度为 。 前驱结点的地址 O(n) * 本章小结及作业讨论 * 本章小结(讨论题形式) 线性表逻辑结构特点是,只有一个首结点和尾结点;除首尾结点外其他结点只有一个直接前驱和一个直接后继。简言之,线性结构反映结点间的逻辑关系是一对一(1:1)的。 问1:线性表的逻辑结构特点是什么?其顺序存储结构和链式存储结构的特点是什么? 答: 顺序存储时,相邻数据元素的存放地址也相邻(逻辑与物理统一);要求内存中可用存储单元的地址必须是连续的。 链式存储时,相邻数据元素可随意存放,但所占存储空间分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针。 * 顺序存储的优点是存储密度大(=1),存储空间利用率高。缺点是插入或删除元素时不方便。 链式存储的优点是插入或删除元素时很方便,使用灵活。缺点是存储密度小(1),存储空间利用率低。 答: 问2:顺序存储和链式存储各有哪些优缺点? 事实上,链表插入、删除运算的快捷是以空间代价来换取时间。 * 问3:在什么情况下用顺序表比链表好? 顺序表适宜于做查找这样的静态操作;链表宜于做插入、删除这样的动态操作。 若线性表的长度变化不大,且其主要操作是查找,则采用顺序表; 若线性表的长度变化较大,且其主要操作是插入、删除操作,则采用链表。 答: * * * 讨论2:若在长度为n的线性表上删除第i位元素,向前移动元素的次数f(n)为: f(n) = 思考:若删除尾结点,则根本无需移动(特别快); 若删除首结点,则表中元素全部要前移(特别慢); 若要考虑在各种位置删除(共n+1种可能)的平均移动次数,该如何计算? n – i 可以证明: 插入、删除操作平均需要移动一半元素(n/ 2) 插入、删除算法的平均时间复杂度为:O(n) 显然,顺序表的空间复杂度S(n)=O(1) (没有占用辅助空间) * 教材P25算法2.5也是对执行效率的推导: 假定在表中任意位置插入、删除元素都是等概率的, 插入概率p(i)=1/(n+1) ,删除概率q(i)=1/n ,则: 插入操作时间效率(平均移动次数) 删除操作时间效率(平均移动次数) * 本节小结 线性表顺序存储结构特点:逻辑关系上相邻的两个元素在物理存储位置上也相邻; 优点:可以随机存取表中任一元素; 缺点:在插入,删除某一元素时,需要移动大量元素。 为克服这一缺点,我们引入另一种存储形式: 链式存储结构 见2.3节 * 上堂课要点回顾 线性结构(包括表、栈、队、数组)的定义和特点: 仅一个首、尾结点,其余元素仅一个直接前驱和一个直 接后继。 2. 线性表 逻辑结构 :“一对一” 或 1:1 存储结构 :顺序、链式 运 算 :修改、插入、删除 3.顺序存储 特征:逻辑上相邻,物理上也相邻; 优点:随机查找快 O(1) 缺点:插入、删除慢 O(n) * 2.3 线性表的链式表示和实现 2.3.1 链表的表示 2.3.2 链表的实现{线性链表,循环链表,双向链表} 2.3.3 链表的运算效率分析 本节小结 作 业 * 2.3.1 链表的表示 链式存储特点 与链式存储有关的术语 补充:结构数据类型及其C语言表示法 * 1.链式存储特点:逻辑上相邻,物理上不一定相邻 链表存放示意图如下: a1 head a2 /\ an …… 讨论1 :每个存储结点都包含两部分:数据域和 。
您可能关注的文档
- 时代光华管理课堂“突破人才培养瓶颈- e-learning应用研讨会”自评及测试题.doc
- 时评麦当劳肯德基何责任 应对问题食品零容忍时评麦当劳肯德基何责任 应对问题食品零容忍时评麦当劳肯德基何责任 应对问题食品零容忍时评麦当劳肯德基何责任 应对问题食品零容忍.doc
- 时评式议论文写作.ppt
- 时用电施工组织设计方案及配电图.doc
- 识字8(导学案).doc
- 识读汽车电路图 教案.doc
- 时空课堂推荐书.ppt
- 食管癌患者手术前后的呼吸道护理食管癌患者手术前后的呼吸道护理食管癌患者手术前后的呼吸道护理食管癌患者手术前后的呼吸道护理.doc
- 食品安全与健康课程论文食品安全与健康课程论文食品安全与健康课程论文食品安全与健康课程论文.doc
- 食品安全与健康论文2013食品安全与健康论文2013食品安全与健康论文2013食品安全与健康论文2013.doc
- 2021—2022学年北师大版八年级数学下册期末押题必刷卷【期末测试·拔高】常考易错突破卷(轻松拿满分)(考试版).docx
- 鸡骨支床、哀毁骨立-【2022年暑假预习】云名著《世说新语》之“德行”卷.pptx
- 奴价倍婢-【2022年暑假预习】云名著《世说新语》之“德行”卷.pptx
- 急不相弃-【2022年暑假预习】云名著《世说新语》之“德行”卷.pptx
- 王朗每以识度推华歆-【2022年暑假预习】云名著《世说新语》之“德行”卷.pptx
- 王祥事母-【2022年暑假预习】云名著《世说新语》之“德行”卷.pptx
- 患难与共-【2022年暑假预习】云名著《世说新语》之“德行”卷.pptx
- 泰山桂树-【2022年暑假预习】云名著《世说新语》之“德行”卷.pptx
- 如有所失-【2022年暑假预习】云名著《世说新语》之“德行”卷.pptx
- 2021—2022学年北师大版八年级数学下册期末押题必刷卷【期末测试·拔高】常考易错突破卷(轻松拿满分)(解析版).docx
最近下载
- 《系统动力学》全套教学课件(共15章完整版).pptx
- 数学必修一导学案全册:必修一导学案与练习全册.pdf VIP
- [兴安盟]2024年内蒙古兴安盟盟直事业单位引进人才35人 笔试历年典型考题及考点剖析附答案详解.doc
- 律师业务档案卷宗封面格式——司律通字(1991)153号.docx
- 2024年新改版苏教版六年级下册科学全册知识点(精编版) .pdf
- YDT 2319-2020数据设备用网络机柜.pdf
- 2025年《可爱的中国》新疆地方教材(小学版)教案范文.docx VIP
- 《星巴克的中国市场营销策略分析的调查报告》3100字.pdf VIP
- 建筑工程技术毕业设计开题报告.docx VIP
- 施工图说明模板及样图-建筑.pdf VIP
文档评论(0)