8. 线性表的类型定义
本节主要介绍线性表的一些基本操作。
本文部分ppt、视频截图来自:[青岛大学-王卓老师的个人空间-王卓老师个人主页-哔哩哔哩视频]
1. 线性表的类型定义
1.1 抽象数据类型线性表的定义
- 定义
- 基本操作(一)
InitList(&L)
(Initialization List)构造线性表
操作结果:构造一个空的线性表L。DestroyList(&L)
销毁线性表
初始条件:线性表L已经存在。
操作结果:销毁线性表L(即从内存中删除线性表L)。ClearList(&L)
清除线性表
初始条件:线性表L已经存在。
操作结果:将线性表L重置为空表(表中没有元素)。
- 基本操作(二)
ListEmpty(L)
判断线性表是否为空
初始条件:线性表L已经存在。
操作结果:若线性表L为空表(元素个数为0),则返回TURE;否则赶回FALSE。ListLength(L)
获取线性表长度
初始条件:线性表L已经存在。
操作结果:返回线性表L中的数据元素个数。
- 基本操作(三)
GetElem(L,i,&e)
获取线性表中元素
初始条件:线性表L已经存在,1 <= i <= ListLength(L)。
操作结果:用e返回线性表L中第i个数据元素的值。LocateElem(L,e,compare())
查找和定位线性表中满足条件的元素
初始条件:线性表L已经存在,compare()是数据元素判定函数。
操作结果:返回L中第一个与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,visited())
遍历访问线性表中某元素
初始条件:线性表L已经存在。
操作结果:依次对线性表中每个元素调用visited()。
注:以上运算是逻辑结构上定义的运算。只要给出这些运算的功能是“做什么”,至于“如何做”等实现细节,指有待确定了存储结构后考虑。