一、线性表简介
线性表(List)是零个或多个数据元素的有限序列,线性表有如下特点:
- 线性表是一个序列,即元素之间是有顺序的。若元素存在多个,则第一个元素无前驱,最后一个元素无后继,其他每个元素都有且只有一个前驱和后继。
- 线性表元素是有限的,事实上,在计算机中处理的对象都是有限的,那种无限的数列,只存在于数学的概念中。
若
用数学方式表示:若将线性表记为(a1, ……, ai-1, ai, ai+1, ……,an),则表中ai-1领先于ai,ai领先于ai+1,称ai-1是ai的直接前驱元素,ai+1是ai的直接后继元素。当丨=1, 2, ……, n-1时,ai有且仅 有一个直接后继,当i=2, 3, ……, n时,ai有且仅有一个直接前驱。所以线性表元素的个数n (n>0)定义为线性表的长度,当n=0时,称为空表。在非空表中的每个数据元素都有一个确定 的位置,如a1是第一个数据元素,an是最后一个数据元素,ai是第i个数据元素,称i为数据元素ai在线性表中的位序。
二、线性表ADT
线性表ADT(Abstract Data Type):指一个数学模型以及定义在该模型上的一组操作
a. List_Init(List *list);//初始化一个空的线性表
b. List_is_Empty(List *list);//判断一个线性表是否为空
c. List_Clear(List *list);//清空一个线性表
d. Get_Element(List *list, unsigned int i) //获取线性表中第i个元素的值
e. Locate_Element(List *list, List *Dest);//查找线性表中是否有元素Dest
f. List_Insert(List *Dest, List *Hinder);//插入元素
g. List_Delete(List *list, List *Dest);//删除元素
i. List_Length(List *list);//获取线性表元素个数
c. List_Clear(List *list);//清空一个线性表
d. Get_Element(List *list, unsigned int i) //获取线性表中第i个元素的值
e. Locate_Element(List *list, List *Dest);//查找线性表中是否有元素Dest
f. List_Insert(List *Dest, List *Hinder);//插入元素
g. List_Delete(List *list, List *Dest);//删除元素
i. List_Length(List *list);//获取线性表元素个数