青岛大学 王卓老师 第二章 线性表
1.线性表是具有相同特性的数据元素的一个有限序列.
2.线性表案例【多项式的系数】。
3.只记录系数非为0的项。【因为稀疏多项式的缘故】
4.链式线性表和顺式线性表。
5、ADT list{
数据对象:
数据关系:
基本操作:
}
6.InitList(&L)创造一个空的线性表
DestroyList(&L) 初始条件:线性表L已经存在。
操作结果:摧毁线性表L。
ClearList(&l) 初始条件:线性表L已经存在。 操作结果:将线性表L重置为空表。
ListEmpty(L) 初始条件 线性表已经存在 操作结果:若线性表L为空表,则返回TURE,否则返回FALSW。
Listlength(L) 初始条件:线性表L已经纯在。 操作结果:返回线性表L的数据元素个数。
GetElem(l,i,&e) 初始条件:线性表L已经存在,1<+i<=ListLength(l)
操作结果 用e返回第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)寻找后继函数 类似前一个。
Listinsert(&l,i,e) 初始条件:线性表L已经存在,1<=i
操作结果 在L的第i个位子之间插入新的数据元素e,L的元素加1.
ListDelete(&L,i,&e) 初始条件:线性表L已经存在,1<=i<=ListLength(l).
操作结果:删除L的第i个数据元素,并且用e返回值,L的长度减一。
ListTraverse(&L,visited()) 初始条件:线性表L已经存在
操作结果:依次把L中的每个元素都进行visit()的操作。
7.存储结构:
【1 顺式存储方式 线性表框架
#define LIST_INIT_SIZE 100 //线性表存储空间的初始分配量
typedef struct {
ElemType elem[LIST_INIT_SIZE];//线性表是ElemType。
Int length;
}Sqlist
结束于 0.50 p14 8.00