線性表的抽象資料類型定義:
ADT 線性表(List)
Data
線性表的資料對象 集合為{a1,a2,......,an},每個元素的類型均為DataType。其中,
除第一個元素a1外,每一個元素有且隻有一個直接前驅元素,除了最後一個元素an外,
每一個元素有且隻有一個後繼元素。資料元素之間的關系是一對一的關系。
Operation
InitList(*L); 初始化操作,建立一個空的線性表L。
ListEmpty(L); 若線性表為空,傳回true,否則傳回false。
ClearList(*L); 将線性表清空。
GetElem(L,i,*e); 将線性表L 中的第i個位置元素值傳回給e。
LocateElem(L,e); 線上性表L中查找 與給定值 e 相等的元素,如果查找成功,傳回該元素在表中序号表示成功;否則,傳回0表示失敗。
ListInsert(*L,i,e); 線上性表L中的第i個位置插入新元素e。
ListDelete(*L,i,*e); 删除線性表中第i個位置元素,并用e 傳回其值。
ListLength(L); 傳回線性表L的元素個數。
endADT
例:
将所有的線上性表Lb中但不在La中的資料元素插入到La中
void unionL(List *La,List Lb)
{
int La_len,Lb_len,i;
ElemType e; /*聲明與La和Lb相同的資料元素e*/
La_len=ListLength(*La); /*求線性表的長度*/
Lb_len=ListLength(Lb);
for(i=1,i<=Lb_len;i++)
{
GetElem(Lb,i,&e); /*取Lb中第i 個資料元素賦給e*/
if(!LocateElem(*La,e)) /*La中不存在和e相同的資料元素*/
{
ListInsert(La,++La_len,e); /*插入*/
}
}
}