第2章 线性表及串.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 线性表及串

第2章 线性表和串 2.1 线性表的定义 线性表(linear list)是一种逻辑结构和物理结构相对简单,应用十分广泛的数据结构。称之为线性表,是因为在逻辑上,构成这种数据结构的数据元素之间有着线性关系。 2.1.1 线性表的逻辑结构 线性表是有限元素(e0,e1, ...,ei,...,en-1)的有序序列的集合。其中,在有限元素序列中,ei是(0=i=n-1)表中的元素,每个元素具有相同的特性,表中元素占用空间大小相同(记为:size),n是表的长度(n是有穷自然数)。当n=0时,表为空;当n0时,e0是第一个元素,en-1 是最后一个元素。 这里所说的“有序”是指线性表中元素之间的相互逻辑位置关系。也就是说,元素ei-1一定在元素ei之前,ei-1是 ei的直接前驱元素,且ei仅此一个直接前驱元素,而元素ei一定在元素ei+1之前,称ei+1是ei的直接后继元素,且ei仅此一个直接后继元素。而且,线性表中除第一个元素外,其它每个元素只有一个直接前驱元素,除最后一个元素外,其它每个元素也仅有一个直接后继元素。i是元素ei在线性表中位置的标号,也称为下标或相对地址。 每个数据元素ei的具体内容或结构在不同的情况下是不相同的,它可以是一个数、一个字符、一个字符串,也可以是一个记录,甚至还可以是更为复杂的数据信息。无论数据元素结构是什么,都被视为“原子”,因为数据元素本身的内容或结构与线性表结构无关。 线性表中的数据元素可以由所描述对象的各种特征的数据项组成,这些数据项可以是任何数据类型,数据项之间彼此独立。这种情况下,数据元素类型通常称为结构类型或记录类型。由多个结构或记录构成的线性表也可以称为文件(file)。例如,学生信息(如表2.2.1所示)可以构成线性表形式的一个文件。表中每个学生的信息由多个数据项构成(学号、姓名、性别、年龄、籍贯),每个学生的信息对应一个数据元素结构或记录类型。 表2.2.1 学生信息 学号 姓名 性别 年龄 出生地 2003050712 肖象 男 18 河北 2003050713 李明 女 17 湖北 2003050714 刘辉 男 18 宁夏 · · · · · · · · · · 表中每一行就是表示一个学生的信息,就是线性表中的一个数据元素,多个数据元素排列为一个线性表。数据元素之间的排列关系是按学生学号从小到大地排列,即数据元素的有序关系。 综上所述可知,在实际应用中,线性表中的元素可以具有广泛的含义,但是同一个线性表中,所有的数据元素都具有相同的特征,即它们具有相同的数据类型,且元素长度(记为size)相同。 2.1.2 线性表的抽象数据类型 对于一个线性表,我们可以定义很多运算,在此只对几种主要运算进行讨论。对于每一种数据结构运算的算法描述,都是与其存储结构有着密切的关系。这也是学习数据结构牢记的要点。 在计算机中存储一个线性表可以采用顺序映象和非顺序映象两种方式。顺序映象又称为线性表的顺序存储结构,非顺序映象又称为线性表的链式存储结构。 ADT 线性表的抽象数据类型 ADT LinearList { DataSet:有限元素(e0,e1, ...,ei,...,en-1)的有序序列的集合。 RelationSet: ei-1是 ei的直接前驱元素, ei一定在元素ei+1之前, ei+1是ei的直接后继元素, ei+1一定在元素ei之后。而且,每个元素只有一个直接前驱元素,也仅有一个直接后继元素。 OperationSet: Creat(L, MaxListSize) 构造空线性表L,其中有MaxListSize个空间 Output (L) 将线性表L中的数据元素进行输出 GetElem(L,k, result) 在线性表L中,取第k个元素, 存入result中 Search(L, searchkey) 在线性表L中,查找元素或元素关键字为searchkey的元素 Insert(L, k, new) 在线性表L中,第k个数据元素之后中插入数据元素new Delete(L, k ) 在线性表L中,删除第k个数据元素 GetPreElem(L, k, result) 在线性表L中,取第k个元素的直接前驱,存入result中 GetPostElem (L, k, result) 在线性表L中,取第k个元素的直接后继,存入result中 IsEmpty(L) 判断线性表L中有无元素 } 2.2 线性表的顺序存储及操作 2.2.1 线性表顺序存储 线性表顺序存储概念 线性表顺序存储方式,是将线性表中的数据元素连续地,按数据元素的逻辑顺序存放于计算机存储器中相邻的单元,从而保证线性表数据元素逻辑上的有序性。 线性表

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档