- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章线性表C-1
讨论1: 用一维向量也能实现链表结构吗? 讨论2: 链表能不能首尾相连?怎样实现? 讨论3: 单链表只能查找结点的直接后继,能不能查找直接前驱?如何实现? 2.3.3 链表的运算效率分析 1. 查找 因线性链表只能顺序存取,即在查找时要从头指针找起,查找的时间复杂度为 O(n)。 练习: 2.4 应用举例 一元多项式的数学通式? 用抽象数据类型如何描述它的定义? 用C语言如何描述它的定义? 如何编程实现两个一元多项式相加? 1. 一元多项式的数学通式? 2. 用抽象数据类型如何定义一元多项式? AddPolyn(Pa,Pb)初始条件:一元多项式Pa和Pb已存在。操作结果:完成多项式相加运算,即:Pa=Pa+Pb,并销毁一元多项式Pb。 /两表相加 3. 用C语言如何具体描述它的定义? 4. 如何编程实现两个一元多项式相加? 实现思路: 具体编程(用C语言) Void AddPolyn(polynomialPa, polynomial Pb){ 运算效率分析: (1) 系数相加 0 ? 加法次数? min(m, n) 其中 m和n分别表示表A和表B的结点数。 (2) 指数比较 极端情况是表A和表B 没有一项指数相同,比较次数最多为m+n-1 (3) 新结点的创建 极端情况是产生m + n 个新结点 合计时间复杂度为 O(m+n) 本章小结(讨论题形式) 线性表逻辑结构特点是,只有一个首结点和尾结点;除首尾结点外其他结点只有一个直接前驱和一个直接后继。简言之,线性结构反映结点间的逻辑关系是一对一(1:1)的。 问2:顺序存储和链式存储各有哪些优缺点? 顺序存储的优点是存储密度大(=1),存储空间利用率高。缺点是插入或删除元素时不方便。 链式存储的优点是插入或删除元素时很方便,使用灵活。缺点是存储密度小(1),存储空间利用率低。 问3:在什么情况下用顺序表比链表好? * 答:能。只要定义一个结构类型数组(含数据域和指示域),就可以完全描述链表,这种链表称为静态链表。 注:数据域含义与前面相同,指示域相当于前面的指针域。 静态链表的插入与删除操作与普通链表一样,不需要移动元素,只需修改指示器就可以了 具体实现过程见教材P31-34。 答:能。只要将表中最后一个结点的指针域指向头结点即可 (P-next=head;) 。这种形成环路的链表称为循环链表。 参见教材P35。 特别:带头结点的空循环链表样式 H 特点: 1、从任一结点出发均可找到表中其他结点。 2、操作时仅循环条件与单链表不同: 单链表 用 p = NULL 或 p -next =NULL 循环链表用 p= head 或 p-next = head 答:能。只要把单链表再多开一个指针域即可(例如用*next和*prior) 。 双链表在非线性结构(如树结构)中将大量使用。 next data prior 这种有两个指针的链表称为双向链表。其特点是可以双向查找表中结点。参见教材P35—39。 特别:带头结点的空双向链表样式: L 空双向循环链表: 时间效率分析 2. 插入和删除 因线性链表不需要移动元素,只要修改指针,一般情况下时间复杂度为 O(1)。 但是,如果要在单链表中进行前插或删除操作,由于要从头查找前驱结点,所耗时间复杂度为 O(n)。 空间效率分析 链表中每个结点都要增加一个指针空间,相当于总共增加了n 个整型变量,空间复杂度为 O(n)。 在n个结点的单链表中要删除已知结点*P,需找到它的 ,其时间复杂度为 。 前驱结点的地址 O(n) 一元多项式的计算 (参见教材P39 – 43) 讨论: 一元多项式的通式可表示为: 分析:一元多项式在计算机内存储时,既可用顺序表存储,又可用链表存储。但当多项式的次数很高且零系数项很多时,则更适于用链表存储(通常设计两个数据域和一个指针域)。 am-1 am-2 … a2 a1 a0 顺序表 链表 am-1 em-1 am-2 em-2 … a0 e0 ^ 或 0.0 -1 … am-1 em-1 ^ a0 e0 (参见P40) ADT Polynomial{ 数据对象:D={ai|ai∈TermSet,i=1,2,…,m, m≥0 TermSet中的每个元素包含一个表示系数的实数和表示指数的整数} 数据关系:R1={ ai-1,ai| ai-1, ai ∈D, 且ai-1中的指数值ai中的指数
您可能关注的文档
- 江苏土建2008定额解释.doc
- 沙溪砼路面试验段总结.doc
- 汽修行业一类二类汽车维修企业信誉年度考核申请表.doc
- 沉积岩复习纲要参考.doc
- 沟槽施工及安全质量管理要点1.doc
- 污水管网四标段顶管与泵站的衔接方式施工方案.doc
- 沥青混凝土摊铺温度需要根据所摊铺的沥青混凝土品种型号确定.doc
- 汽车空气调节操纵装置标准(草案).ppt
- 沥青混凝土施工质量监理流程.docx
- 李小建版经济地理第4章.ppt
- 抢分秘籍10 带电粒子电场中的直线运动、偏转和交变电电场中的应用(三大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍11 带电粒子在组合场、叠加场中的运动(五大题型)(解析版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍11 带电粒子在组合场、叠加场中的运动(五大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍12 电磁感应中的电路与图像问题(二大题型)(解析版) -2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍12 电磁感应中的电路与图像问题(二大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍14 热力学定律与气体实验定律综合应用(五大题型)(解析版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍13 电磁感应中的动力学、能量和动量问题(三大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍14 热力学定律与气体实验定律综合应用(五大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍16 振动图像与波动图像的综合应用(三大题型)(解析版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍15 光的折射、全反射的综合应用(二大题型)(解析版)-2025年高考物理冲刺抢押秘籍.pdf
文档评论(0)