第二章线性表辩析.ppt

  1. 1、本文档共78页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章~第四章 线性结构 线性结构特点:在数据元素的非空有限集中: 存在唯一的一个被称作“第一个”的数据元素 存在唯一的一个被称作“最后一个”的数据元素 除第一个外,集合中的每个数据元素均只有一个前驱 除最后一个外,集合中的每个数据元素均只有一个后继 第二章 线性表(6学时) 第一讲 2.1 线性表的类型定义 2.2 线性表的顺序表示和实现 第二讲 2.3 线性表的链式表示和实现 一、线性表的定义 线性表(Linear List) :由n(n≧0)个数据元素(结点)a1,a2, …an组成的有限序列。 其中:数据元素的个数n定义为表的长度。 当n=0时称为空表。 常将非空的线性表(n0)记作: (a1,a2,…an) 说明 :数据元素ai(1≦i≦n)只是一个抽象的符号,其具体含义在不同的情况下可以不同。 例1、26个英文字母组成的字母表 ( A,B,C、…、Z) 例2、某校从1978年到1983年各种型号的计算机拥有量的变化情况: (6,17,28,50,92,188) 例3、学生健康情况登记表如下: 在此例中,一个数据元素由若干数据项组成,常把这样的数据元素称为记录,含有大量记录的线性表,又称为文件。 线性表的基本要求: 从以上三个例子可以看出,线性表中的数据元素可以是各种各样,但同一线性表中的数据元素必须具有相同的特性,即属于同一数据对象,相邻的元素之间存在着序偶关系。 通常将线性表记为: (a1,…,ai-1,ai,ai+1,…,an) ai为第i个元素,i为元素ai在线性表中的位序。 线性表的逻辑特征: 在非空的线性表,有且仅有一个开始结点a1,它没有直接前趋,而仅有一个直接后继a2; 有且仅有一个终端结点an,它没有直接后继,而仅有一个直接前趋a n-1; 其余的内部结点ai(2≦i≦n-1)都有且仅有一个直接前趋a i-1和一个直接后继a i+1。 线性表是一种典型的线性结构,长度可增减,对元素可进行访问,插入、删除等操作。 二、线性表的抽象数据类型定义 ??ADT?List{ ??????数据对象:D={ai|ai∈ElemSet,i=1,2,3.,n,n≥0} ??????数据关系:R1={ai-1, ai| ai-1, ai∈D,i=2,3...,n} ??????基本操作: InitList(L) 操作结果:构建一个空的线性表。 ??????DestroyList(L) ??????初始条件:线性表已存在(已初始化) ??????操作结果:销毁线性表 ??????ClearList(L) ??????初始条件:线性表已存在(已初始化) ??????操作结果:将线性表重置为空表 ListEmpty(L) ??????初始条件:线性表已存在(已初始化) ??????操作结果:若线性表为空表则返回TRUE,否则返回FALSE ?? ListLength(L) ??????初始条件:线性表已存在(已初始化) ??????操作结果:返回线性表中元素个数 ??????GetElem(L,i,e) ??????初始条件:线性表已存在(已初始化) ??????操作结果:用e返回第i个数据元素的值。 ??????LocateElem(L,e,compare()) ??????初始条件:线性表已存在(已初始化),?compare是数据判定函数 ??????操作结果:返回L中第1个与e满足关系compare()元素的位序 ??????PriorElem(L,cur_e,pre_e) ??????初始条件:线性表已存在(已初始化) ??????操作结果:若cur_e是线性表中的数据元素,且不是第一个,用pre_e来返回cur_e的前驱;否则操作失败。 NextElem(L,cur_e,next_e) ??????初始条件:线性表已存在(已初始化) ??????操作结果:若cur_e是线性表中的数据元素,且不是最后一个元素,则用next_e返回它的的后继,否则操作失败,next_e无定义。 ?? ListInsert(L,i,e) ??????初始条件:线性表已存在,1=i=ListLength+1 ??????操作结果:在第i个位置之前插入新的元素e,线

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档