项目GitHub:传送门
线性表的定义
- 线性表(list): 零个或多个数据元素的有限序列。
- 线性表元素的个数n(n>=0)定义为线性表的长度,当n=0时,称为空表。
- 存储逻辑关系一对一。
线性表的特性
- 存在唯一的一个被称为“第一个”的数据元素;
- 存在唯一的一个被称为“最后一个”的数据元素;
- 除第一个之外,结构中的每个数据元素均只有一个前驱;
- 除最后一个之外,结构中的每个数据元素均只有一个后继。
线性表的抽象数据类型定义
ADT 线性表(List)
Data :数据对象的集合。元素及有相同的类型,相邻元素具有前驱和后继关系。
Operation:
- InitList(*L):构建一个空的线性表L。
- DestroyList(*L):若线性表存在,则销毁它。
- ClearList(*L):将线性表清空。
- ListEmpty(L):若线性表为空,返回true,否则返回false。
- GetElem(L, i, &e):用e返回线性表的第i个元素。
- LocateElem(L, e):返回L中第一个与e相等的元素的序号。若不存在,则返回0。
- ListDelet(int i):删除第i个元素并返回其值
- PriorElem(const T& item):返回第一个与item相等的元素的前驱
- NextElem(const T& item):返回第一个与item相等的元素的后继
endADT
C++语言描述及实现(具备C++特性)
1.线性表的顺序存储结构定义
线性表的抽象与封装
/*
* Sequential List - 线性表的顺序存储结构
* 特性:逻辑相邻,物理也相邻
*/
template<class T>
class s_List
{
public:
s_List(int listCapacity