a. 线性表(List):零个或多个数据元素的有序序列。
b. 线性表的长度n=LIstLenght(L);当n=0时,线性表为空,即空表。
c. 在复杂的线性表中,一个数据元素可以是若干个数据项目组成。
1.线性表的抽象数据类型
ADT 线性表 (List)
Data
Operation
Initlist (*L ) 初始化建立一个空链表L
ListEmpty ( L ) 若线性表为空 返回ture 否则,返回flash
ClearList (*L ) 将线性表清空
GetElem (L,i,*e) 将线性表的第i个元素返还给e
LocateElem (L,e) 在线性表中查找与给定e相同的元素 如果成功返还成功
ListInsert (*L,i,e) 在线性表第i个位置插入元素e
ListDelete (*L,i,*e) 删除线性表第i个位置元素,并用e作为返回值
ListLength (L) 返回线性表的元素个数
endDT
2. 假设La表示集合A,Lb表示集合B 代码实现以下功能 : 将所有的在线性表Lb但不在La的元素插入La中
void unionL(list *La,list Lb)
{
int La_len,Lb_len,i;
ElemType e; //声明和La,Lb长度一样的元素e
La_len=strlen(*La);
Lb_len=strlen(Lb);
for(i=1;i<=Lb_len;i++)
{
GetElem(Lb,i,&e); //取Lb中第i个数据元素赋给e
if(!LocateElem(*La,e)) //*La中不存在与e相同的元素
ListTnstrt(La,++La,e); //插入
}
}
线性表的顺序储存结构指的是用一段地址的存储单元依次存储线性表的数据元素
/*线性表的顺序储存结构*/
#define MAXSIZE 20 //储存空间初始分配量
typedef int ElemType; //ELemType 类型根据实际情况而定,这里假设为int
typedef struct
{
ElemType data[MAXSIZE];//数组存储数据元素,最大值为MAXZIZE
int lenght; //线性表的长度
}SqList;
4.线性表的插入与删除操作
</