线性表抽象数据类型定义
//参考西北大学耿国华教授的《数据结构》第二版
ADT LinerList{
数据元素:D = {ai | ai ∈ D0 , i = 1,2,…,n , n>=0 , D0 为某一数据类型}
结构关系:R = {<ai,aj> | ai,ai+1 ∈D0,i = 1,2,…,n - 1}
基本操作:
1 InitList(L)
2 ListLength(L)
3 GetData(L,i)
4 InsList(L,i,e)
5 DelList(L,i,e)
6 Locate(L,e)
7 DestoryList(L)
8 ClearList(L)
9 EmptyList(L)
}ADT LineraList;
分别对应线性表的初始化、线性表长度、取i、插入、删除、位置、销毁、置空、判空操作。
抽象数据类型对应的仅仅是一个模型的定义,并不涉及具体的实现。因此使用的参数不考虑具体类型。
定义是在逻辑上的,用户只需要了解各种操作的功能,而无须知道它们的具体实现,各操作的具体实现与线性表具体采用哪种存储结构有关。
线性表顺序存储
1 地址的计算
2 顺序存储结构表示
#define MAXSIZE 100 //宏,表示线性表最大长度
typedef struct
{
ElemType elem[MAXSIZE];
int last; //记录线性表最后一个元素在数组elem[] 中的位置(下标值),空表置为-1
}SeqList;
线性表顺序存储结构上的基本运算
1 查找
按序号查找 GetData(L,i)
按内容