抽象数据类型线性表的定义
2007-12-02 16:04
351 查看
抽象数据类型线性表的定义
通常可以下列" n 个数据元素的序列"表示线性表(Linear_List)
序列中数据元素的个数 n 定义为线性表的表长;n=0 时的线性表被称为空表。称 i 为
在线性表中的位序。
其抽象数据类型的定义如下:
ADT List {
数据对象:D={
|
∈ ElemSet, i=1,2,...,n, n≥0 }
数据关系:R1={ <ai-1 ,ai >|
,
∈D, i=2,...,n }
基本操作:
{结构初始化}
InitList( &L )
操作结果:构造一个空的线性表 L 。
{销毁结构}
DestroyList( &L )
初始条件:线性表 L 已存在。
操作结果:销毁线性表 L 。
例如,26个小写英文字母是一个线性表
(a,b,…,z)
同一花色的13张扑克牌
(2,3,4,5,6,7,8,9,10,J,Q,K,A)
可以构成一个线性表。
序偶 <
,
> 表示
是
的直接前驱,反之,
是
的直接后继。
{引用型操作}
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≤LengthList(L)。
操作结果:用 e 返回 L 中第 i 个元素的值。
LocateElem( L, e, compare( ) )
初始条件:线性表 L 已存在,compare( ) 是元素判定函数。
操作结果:返回 L 中第1个与 e 满足关系 compare( ) 的元素的位序。
若这样的元素不存在,则返回值为0。
ListTraverse(L, visit( ))
初始条件:线性表 L 已存在,visit( ) 为元素的访问函数。
操作结果:依次对 L 的每个元素调用函数 visit( )。
一旦 visit( ) 失败,则操作失败。
{加工型操作}
ClearList( &L )
初始条件:线性表 L 已存在。
操作结果:将 L 重置为空表。
PutElem( &L, i, &e )
初始条件:线性表L已存在,1≤i≤LengthList(L)。
操作结果:L 中第 i 个元素赋值同 e 的值。
ListInsert( &L, i, e )
初始条件:线性表 L 已存在,1≤i≤LengthList(L)+1。
操作结果:在 L 的第 i 个元素之前插入新的元素 e,L 的长度增1。
ListDelete( &L, i, &e )
初始条件:线性表 L 已存在且非空,1≤i≤LengthList(L)。
操作结果:删除 L 的第 i 个元素,并用 e 返回其值,L 的长度减1。
} ADT List
通常可以下列" n 个数据元素的序列"表示线性表(Linear_List)
序列中数据元素的个数 n 定义为线性表的表长;n=0 时的线性表被称为空表。称 i 为
在线性表中的位序。
其抽象数据类型的定义如下:
ADT List {
数据对象:D={
|
∈ ElemSet, i=1,2,...,n, n≥0 }
数据关系:R1={ <ai-1 ,ai >|
,
∈D, i=2,...,n }
基本操作:
{结构初始化}
InitList( &L )
操作结果:构造一个空的线性表 L 。
{销毁结构}
DestroyList( &L )
初始条件:线性表 L 已存在。
操作结果:销毁线性表 L 。
例如,26个小写英文字母是一个线性表
(a,b,…,z)
同一花色的13张扑克牌
(2,3,4,5,6,7,8,9,10,J,Q,K,A)
可以构成一个线性表。
序偶 <
,
> 表示
是
的直接前驱,反之,
是
的直接后继。
{引用型操作}
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≤LengthList(L)。
操作结果:用 e 返回 L 中第 i 个元素的值。
LocateElem( L, e, compare( ) )
初始条件:线性表 L 已存在,compare( ) 是元素判定函数。
操作结果:返回 L 中第1个与 e 满足关系 compare( ) 的元素的位序。
若这样的元素不存在,则返回值为0。
ListTraverse(L, visit( ))
初始条件:线性表 L 已存在,visit( ) 为元素的访问函数。
操作结果:依次对 L 的每个元素调用函数 visit( )。
一旦 visit( ) 失败,则操作失败。
{加工型操作}
ClearList( &L )
初始条件:线性表 L 已存在。
操作结果:将 L 重置为空表。
PutElem( &L, i, &e )
初始条件:线性表L已存在,1≤i≤LengthList(L)。
操作结果:L 中第 i 个元素赋值同 e 的值。
ListInsert( &L, i, e )
初始条件:线性表 L 已存在,1≤i≤LengthList(L)+1。
操作结果:在 L 的第 i 个元素之前插入新的元素 e,L 的长度增1。
ListDelete( &L, i, &e )
初始条件:线性表 L 已存在且非空,1≤i≤LengthList(L)。
操作结果:删除 L 的第 i 个元素,并用 e 返回其值,L 的长度减1。
} ADT List
相关文章推荐
- 抽象数据类型线性表的定义—评论为顺序表
- 抽象数据类型线性表的定义—链表操作
- 抽象数据类型线性表的定义—静态单链表
- 小议数据结构中抽象数据类型struct的定义
- 第二章 线性表 2.1线性表的定义
- 定义线性表
- 线性表抽象数据类型
- 线性表定义
- 抽象数据类型线性表的基本操作(个人学习)
- 第11章 定义抽象数据类型
- 抽象数据类型——线性表
- 定义线性表
- 【足迹C++primer】15、定义抽象数据类型
- 数据结构看书笔记(六)--树的定义、抽象数据类型、存储结构
- c/c++ 数据结构-线性表(链式表示&实现&单链表定义&实现)
- 线性表【01】线性表的类型定义
- 抽象数据类型定义(ADT)
- C++primer学习笔记-----7.1定义抽象数据类型
- 线性表类型定义与顺序表操作
- 【数据结构学习2】线性表,顺序表定义中详细表述。