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

2 线性表 线性结构是一个数据元素的有序(次序)集 线性结构的基本特征: 1、存在唯一的一个 “第一个元素” 2、存在唯一的一个 “最后一个元素” 3、除第一个之外,集合中的每个数据元素均只有一个前驱 4、除最后元素之外,集合中的每个数据元素均只有一个后继 2.1 线性表的类型定义 2.2 线性表类型的实现 -- 顺序映像 2.3线性表类型的实现 --链式映像 2.4一元多项式的表示 2.1 线性表的类型定义 2.1.1 抽象数据类型线性表的定义    通常可以下列“ n 个数据元素的序列”表示线性表 (Linear_List)    ( a1,a2 ,...,ai ,...,an ) 序列中数据元素的个数 n 定义为线性表的表长; n=0 时的线性表被称为空表。 称 i 为 ai在线性表中的位序。 例 分析26 个英文字母组成的字母表 抽象数据类型的定义如下: ADT List { 数据对象: D={ ai | ai∈ ElemSet, i=1,2,...,n, n≥0 } 数据关系: R1={ ai-1 , ai | ai-1 , ai ∈D, i=2,...,n } 基本操作: 四大类 1{结构初始化}   InitList( L )   操作结果:构造一个空的线性表 L 。 2{销毁结构}   DestroyList( L )    初始条件:线性表 L 已存在。    操作结果:销毁线性表 L 。 3 {引用型操作} ListEmpty( L ) ListLength( L ) PriorElem( L, cur_e, pre_e ) NextElem( L, cur_e, next_e ) GetElem( L, i, e ) LocateElem( L, e, compare( ) ) ListTraverse(L, visit( )) 4 {加工型操作} ClearList( L ) PutElem( L, i, e ) ListInsert( L, i, e ) ListDelete( L, i, e ) }//ADT List {引用型操作} ListEmpty( L )  初始条件:线性表L已存在。  操作结果:若 L 为空表,则返回 TRUE,否则返回 FALSE。 引用型操作 ListLength( L )  初始条件:线性表 L 已存在。  操作结果:返回 L 中元素个数。 引用型操作 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 无定义。 引用型操作 GetElem( L, i, e )  初始条件:线性表 L 已存在, 1≤i≤ListLength(L)。  操作结果:用 e 返回 L 中第 i 个元素的值。 LocateElem( L, e, compare( ) ) 初始条件:线性表 L 已存在,compare() 是元素判定函数。 操作结果:返回 L 中第1个与 e 满足关系compare( ) 的元素的位序。若这样的元素不存在,则返回值为0。 ListTraverse(L, visit( )) 初始条件:线性表 L 已存在 操作结果:依次对 L 的每个元素调用函数 visit( )。一旦 visit( ) 失败,则操作失败。 加工型操作  ClearList( L )  初始条件:线性表 L 已存在。  操作结果:将 L 重置为空表。 加工型操作 PutElem( L, i, e ) 初始条件:线性表L已存在, 1≤i≤ListLength (L)。 操作结果:L 中第 i 个元素赋值同 e 的值。 加工型操作 ListInsert( L, i, e )     初始条件:线性表 L 已存在, 1≤i≤ListLength (L)+1。     操作结果:在 L 的第 i 个元素之前插入新的元素 e,L 的长度增1。 加工型操作 ListDelete( L, i, e )     初始条件:线性表 L 已存在且非空, 1

文档评论(0)

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

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

1亿VIP精品文档

相关文档