网站大量收购独家精品文档,联系QQ:2885784924

数据结构-chapter2.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构-chapter2

线性结构 第2章 线性表 2.1 线性表的类型定义 2.1 线性表的类型定义 2.1 线性表的类型定义 2.2 线性表的顺序表示和实现 2.2 线性表的顺序表示和实现 2.2 线性表的顺序表示和实现 2.2 线性表的顺序表示和实现 2.2 线性表的顺序表示和实现 2.2 线性表的顺序表示和实现 2.2 线性表的顺序表示和实现 2.2 线性表的顺序表示和实现 2.2 线性表的顺序表示和实现 2.2 线性表的顺序表示和实现 2.2 线性表的顺序表示和实现 2.2 小节 2.3 线性表的链式表示和实现 2.3 线性表的链式表示和实现 2.3 线性表的链式表示和实现 2.3 线性表的链式表示和实现 2.3 线性表的链式表示和实现 2.3 线性表的链式表示和实现 例:用单链表结构来存放26个英文字母组成的线性 表(a,b,c,…,z),请写出C语言程序。 2.3 线性表的链式表示和实现 2.3 线性表的链式表示和实现 2.3 线性表的链式表示和实现 2.3 线性表的链式表示和实现 思路:要读取第i个数据元素,必须从头指针起一直找到该 结点的指针p 2.3 线性表的链式表示和实现 2.3 线性表的链式表示和实现 2.3 线性表的链式表示和实现 2.3 线性表的链式表示和实现 2.3 线性表的链式表示和实现 2.3 线性表的链式表示和实现 2.3 线性表的链式表示和实现 2.3 线性表的链式表示和实现 2.3 线性表的链式表示和实现 2.3 线性表的链式表示和实现 2.3 线性表的链式表示和实现 2.3 线性表的链式表示和实现 2.4 一元多项式的表示及相加 2.4 一元多项式的表示及相加 2.4 一元多项式的表示及相加 第2章 小结 第2章 小结 第2章 线性表 练习 练习 练习 作业 在单链表中删除第i个元素的示意图如下: p ai+1 ai-1 ai 删除动作的核心语句(要借助辅助指针变量q): q = p-next; //首先保存ai的指针; p-next=q-next; //将ai-1、ai+1两结点相连,淘汰ai结点; free(q) ; //彻底释放ai结点空间 p-next (p-next) - next × × q (4)单链表的删除 (三)应用举例 已知:线性表A和B,分别由单链表La和Lb存储,其中数据 元素按值非递减有序排列(即已经有序); 例:两个链表的归并(教材P31例) 重点是链表 要求:将A和B归并为一个新的线性表C , C的数据元素仍按 值非递减排列。设线性表C由单链表 Lc 存储。 假设:A=(3,5,8,11),B=(2,6,8,9,11) 预测:合并后的C =(2, 3, 5, 6, 8, 8, 9, 11,11) 链表示意图: 合并 算法设计: 算法主要包括搜索、比较、插入三个操作: 搜索:需要设立三个指针来指向La 、Lb和Lc链表; 比较:比较La和Lb表中结点数据的大小; 插入:将La和Lb表中数据较小的结点插入新链表Lc 。 3 5 8 11 ^ La Lb 2 6 8 11 ^ 9 Lc 2 3 5 6 8 8 9 11 11 ^ Pc Pa、Pb用于搜索La和Lb,Pc指向新链表Lc的当前结点。 链表Lc存储在新开辟的空间中,归并过程示意如下: Lb 2 6 8 11 ^ 9 3 5 8 11 ^ La Lc 2 3 5 Pa 6 Pb 8 Pc Pb Pc Pa Pa Pc Pc Pb Pc Pa Pb Pa、Pb用于搜索La和Lb,Pc指向新链表Lc的当前结点。 链表Lc利用当前空间进行存储,归并过程示意如下: Lc=Pc Lb 2 6 8 11 ^ 9 3 5 8 11 ^ La Pa Pb X Pc X Pb Pc Pa Pc Pa Pc Pb X Pc X Pa Pc Pb X Pc Pb Pc X 算法实现: Void MergeList_L(LinkList La,LinkList Lb,LinkList Lc) { free(Lb); //释放Lb的头结点 } pc-next = pa ? pa: pb ; //插入非空表的剩余段 while(papb) //将pa 、pb结点按大小依次插入Lc中 { if(pa-data=pb-data) {pc-next=pa; pc=pa; pa=pa-n

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档