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

数据结构PPT教学课件-第2章_线性表参考.ppt

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

第二章 线性表 2.1 线性表的类型定义 2.2 线性表的顺序表示和实现 2.3 线性表的链式表示和实现 2.4 一元多项式的表示及相加 线性表 线性结构是一个数据元素的有序(次序)集。 线性结构的特点: 存在唯一的一个被称做“第一个”的数据元素; 存在唯一的一个被称做“最后一个”的数据元素; 除第一个之外,集合中的每个数据元素均只有一个前驱; 除最后一个之外,集合中每个数据元素均只有一个后继。 2.1 线性表的类型定义 线性表(Liner List):n( ? 0)个数据元素的有限序列,记作(a1, …ai-1, ai, ai+1,…, an);其中ai是表中数据元素,n是表长度。 线性表的特点: 同一线性表中元素具有相同特性; 相邻数据元素之间存在序偶关系; 除第一个元素外,其他每一个元素有一个且仅有一个直接前驱; 除最后一个元素外,其他每一个元素有一个且仅有一个直接后继。 线性表举例: 1. 数据元素只要是同性质就可以: 比如(A,B,……,Z),又如(6,17,28,50,92,188) 2. 一个数据元素可以由若干项目(数据项Item)组成,此时数据元素称为记录(Record),而含有大量记录的线性表又称文件(file)。 线性表定义演示 结论: 线性表中的数据元素可以是各种各样的,但同一线性表(a1, …ai-1, ai, ai+1,…, an)中所有元素具有相同特性,即属同一数据对象。 任意两相邻元素ai-1和 ai之间存在序偶关系 ai-1, ai ;其中称ai-1为ai的直接前驱,而ai为ai-1的直接后继。当i=1,2,…,n-1时,ai有且仅有一个直接后继,当i=2,3,…,n时,ai有且仅有一个直接前驱。 线性表中元素的个数n定义为线性表的长度,n=0时称为空表。 在非空线性表中,任意一个元素ai是表的第i个元素,i称为数据元素在线性表中的位序。 线性表的抽象数据类型定义以及基本操作 数据的运算是定义在逻辑结构上的,而运算的具体实现则是在存储结构上进行的。 抽象数据类型线性表的定义如下: ADT List { 数据对象:D={ ai|ai∈ElemSet,i=1,2,……,n, n≥0 } 数据关系:R1={ ai-1,ai| ai-1, ai ∈Di,i=2,……,n } 基本操作: 线性表的基本操作(一) InitList(L) 操作结果:构造一个空的线性表L。 DestroyList(L) 初始条件:线性表L已存在。 操作结果:销毁线性表。 线性表的基本操作(二) CleanList(L) 初始条件:线性表L已存在。 操作结果:将L重置为空表。 ListEmpty(L) 初始条件:线性表L已存在。 操作结果:若L为空表,则返回TRUE,否则返回FALSE。 线性表的基本操作(三) ListLength(L) 初始条件:线性表L已存在。 操作结果:返回L中数据元素个数。 GetElem(L, i, e) 初始条件:线性表L已存在,1≤i ≤ListLength(L)。 操作结果:用e返回L中第i个数据元素的值。 线性表的基本操作(四) LocateElem(L, e, compare()) 初始条件:线性表L已存在, compare()是数据元素判定函数。 操作结果:返回L中第1个与e满足关系compare()的数据元素的位序。若这样的数据元素不存在,则返回值为0。 PriorElem(L, cur_e, pre_e) 初始条件:线性表L已存在。 操作结果:若cur _e是L的数据元素,且不是第一个,则用pre _e返回它的前驱,否则操作失败, pre _e无定义。 线性表的基本操作(五) NextElem(L, cur_e, next_e) 初始条件:线性表L已存在。 操作结果:若cur_e是L的数据元素,且不是最后一个,则用next_e返回它的后继,否则操作失败, next_e无定义。 ListInsert(L, i, e) 初始条件:线性表L已存在, 1≤i ≤ListLength(L)+1。 操作结果:在L中第i个位置之前插入新的数据元素e,L的长度加1。 线性表的基本操作(六) ListDelete(L, i, e) 初始条件:线性表L已存在且非空, 1≤i ≤ListLength(L)。 操作结果:删除L的第i个数据元素,并用e返回其值,L的长度减1。 ListTraverse( L, visit() ) 初始条件:线性表L已存在。 操作结果:依次对L的每个数据元素调用函数visit() 。一旦visit()失败,则操作失败。 线性表基本操作演示 例2-1:假设利用两个线性表LA和LB分别表示两个集合A和B(即:线性表中的数据元素即为集合中的成员),先

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档