数据结构 第2章 线性表.pptVIP

  1. 1、本文档共70页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 线性表 一.基本内容 线性表的逻辑结构定义,抽象数据类型定义和各种存储结构的描述方法;在线性表的两类存储结构(即顺序的和链式的)上如何实现基本操作;稀疏多项式的抽象数据类型定义,表示和加法的实现. 第2章 线性表 二.学习要点 1.了解线性表的逻辑结构特性. 2.熟练掌握线性表的两类不同的存储结构的描述方法、特点及有关概念。 3.熟练掌握线性表在顺序存储结构上实现基本操作的算法(查找、插入和删除). 4.熟练掌握在各种链表结构中实现线性表操作的基本方法(链表的建立、查找、插入和删除算法). 5.能够从时间和空间复杂度的角度综合比较线性表两种存储结构的不同特点及其适用场合. 2.1 线性表的类型定义 线性表(Linear List) :由n(n≧)个数据元素(结点)a1,a2, …,an组成的有限序列。其中数据元素的个数n定义为表的长度。当n=0时称为空表,常常将非空的线性表(n0)记作:(a1,a2,…an) 这里的数据元素ai(1≦i≦n)只是一个抽象的符号,可能是单个数据项,也可能由若干个数据项组成,但必定具有相同特性,即属同一数据对象。例如: 1、由26个英文字母组成的字母表(A,B,C , … , Z)是一个线性表; 2、学生成绩登记表(见下图)是一个线性表 2.1 线性表的类型定义 从线性表的定义可看出线性表的逻辑结构特征是: 在非空的线性表中,有且仅有一个开始结点a1,它没有直接前驱,而仅有一个直接后继a2;有且仅有一个终端结点an,它没有直接后继,而仅有一个直接前驱a n-1;其余的内部结点ai(2≦i≦n-1)都有且仅有一个直接前驱a i-1和一个直接后继a i+1。线性表中结点之间的逻辑关系就是上述的邻接关系,由于该关系是线性的,因此线性表是一种线性结构。 下面给出线性表的基本运算: 2.1 线性表的类型定义 线性表的基本操作 p19~p20 1)InitList (L) 初始化,构造一个空的线性表 2)ListLength (L) 求长度,返回线性表中数据元 素个数 3)GetElem (L, I , e) 取表L中第i个数据元素赋 值给e 4)LocateElem (L , e) 按值查找,若表中存在一 个或多个值为e的结点,返回第一个找到的 数据元素的位序,否则返回一个特殊值。 5)ListInsert (L , i , e) 在L中第i个位置前插入 新的数据元素e,表长加1。 6)ListDelete (L , i, e) 删除表中第i个数据元 素,e返回其值,表长减1。 2.1 线性表的类型定义 例2-1 利用两个线性表LA和LB分别表示两个集合A和B,现要求一个新的集合A=A∪B。 2.1 线性表的类型定义 例2-2 巳知线性表LA和线性表LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC,且LC中的元素仍按值非递减有序排列。 此问题的算法如下: 2.1 线性表的类型定义 时间复杂性分析 例2-1 求A = A ∪ B P20算法2.1 时间复杂度:LocateElem()执行次数 O(ListLength(A)*ListLength(B)) 例2-2 合并LA 和 LB 到LC中 P20-21算法2.2 时间复杂度:ListInsert()执行次数O(ListLength(LA)+ListLength(LB)) 2.2 线性表的顺序表示和实现 2.2.1线性表的顺序表示 线性表的顺序表示指的是用一组地址连续的存储单元依次存储线性表的数据元素。 把线性表的结点按逻辑顺序依次存放在一组地址连续的存储单元里。用这种方法存储的线性表简称顺序表。 假设线性表的每个元素需占用l个存储单元,并以所占的第一个单元的存储地址作为数据元素的存储位置。则线性表中第i+1个数据元素的存储位置LOC(ai+1)和第i个数据元素的存储位置LOC (a i)之间满足下列关系: LOC(ai+1)=LOC (a i)+ l 线性表的第i个数据元素a i的存储位置为: LOC (a i)=LOC(a1)+(i-1)*l 2.2 线性表的顺序表示和实现 2.2 线性表的顺序表示和实现 其中Loc(a1)是线性表的第一个数据元素a1的存储位置, 通常称作线性表的起始位置或基地址。 线性表的顺序存储结构的特点: 用“物理位置”相邻来表示线性表中数据元素之间的

文档评论(0)

bm5044 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档