一、线性表的逻辑结构
(1) 线性表的定义
1线性表:简称表,是n(n≥0)个具有相同类型的数据元素的有限序列。
2线性表的长度:线性表中数据元素的个数。
3空表:长度等于零的线性表,记为:L=( )。
4非空表记为:L=(a1,a2 , …,ai-1, ai ,…, an)。其中,ai(1≤i≤n)称为数据元素;下角标i表示该元素在线性表中的位置或序号。
(2)线性表的特性:
1. 有限性:线性表中数据元素的个数是有穷的。
2. 相同性:线性表中数据元素的类型是同一的。
3. 顺序性:线性表中相邻的数据元素ai-1和ai之间存在序偶关系(ai-1,ai),即ai-1是ai的前驱,ai是ai-1的后继;a1无前驱,an无后继,其它每个元素有且仅有一个前驱和一个后继。
二、线性表的抽象数据定义类型
抽象数据类型定义为:
ADT List
Data
线性表中的数据元素具有相同类型,相邻元素具有前驱和后继关系
Operation
InitList
前置条件:表不存在
输入:无
功能:表的初始化
输出:无
后置条件:建一个空表
DestroyList
前置条件:表已存在
输入:无
功能:销毁表
输出:无
后置条件:释放表所占用的存储空间
Length
前置条件:表已存在
输入:无
功能:求表的长度
输出:表中数据元素的个数
后置条件:表不变
Get
前置条件:表已存在
输入:元素的序号i
功能:在表中取序号为i的数据元素
输出:若i合法,返回序号为i的元素值,否则抛出异常
后置条件:表不变
Locate
前置条件:表已存在
输入:数据元素x
功能:在线性表中查找值等于x的元素
输出:若查找成功,返回x在表中的序号,否则返回0
后置条件:表不变
Insert
前置条件:表已存在
输入:插入i;待插x
功能:在表的第i个位置处插入一个新元素x
输出:若插入不成功,抛出异常
后置条件:若插入成功,表中增加一个新元素
Delete
前置条件:表已存在
输入:删除位置i
功能:删除表中的第i个元素
输出:若删除成功,返回被删元素,否则抛出异常
后置条件:若删除成功,表中减少一个元素
Empty
前置条件:表已存在
输入:无
功能:判断表是否为空
输出:若是空表,返回1,否则返回0
后置条件:表不变
PrintList
前置条件:表已存在
输入:无
功能:遍历操作,按序号依次输出线性表中的元素
输出:线性表的各个数据元素
后置条件:线性表不变
endADT
说明:
(线性表的基本操作根据实际应用是而定;
(复杂的操作可以通过基本操作的组合来实现;
(对不同的应用,操作的接口可能不同。
三、