数据结构(C语言实现)
上QQ阅读APP看书,第一时间看更新


2.1.2 线性表的抽象数据类型

线性表的抽象数据类型定义了线性表中的数据对象、数据关系和基本操作。线性表的抽象数据类型定义如下:

ADT List

{

数据对象:D={ai|ai∈ElemSet,i=1,2,…,n,n≥0}

数据关系:R={<ai-1,ai>|ai-1,ai∈D,i=2,3,…,n}

基本操作:

(1)InitList(&L)

初始条件:表L不存在。

操作结果:建立一个空的线性表L。

这就像日常生活中,新生入学时建立一个学生情况表,准备登记学生信息。

(2)ListEmpty(L)

初始条件:表L存在。

操作结果:若表L为空,返回1,否则返回0。

这就像日常生活中,刚刚建立了学生情况表,还没有学生来登记。

(3)GetElem(L,i,&e)

初始条件:表L存在,且i值合法,即1≤i≤ListLength(L)。

操作结果:返回表L的第i个位置元素值给e。

这就像在学生情况表中查找一个学生,将查到的学生情况报告给老师。

(4)LocateElem(L,e)

初始条件:表L存在,且e为合法元素值。

操作结果:在表L中查找与给定值e相等的元素。如果查找成功,则返回该元素在

表中的序号;如果这样的元素不存在,则返回0。

这就像在学生情况表中查找一个学生,只报告是否找到这个学生,并不报告这个

学生的基本情况。

(5)InsertList(&L,i,e)

初始条件:表L存在,e为合法元素且1≤i≤ListLength(L)。

操作结果:在表L中的第i个位置插入新元素e。

这就像新来了一个学生报到,被登记到学生情况表中。

(6)DeleteList(&L,i,&e)

初始条件:表L存在且1≤i≤ListLength(L)。

操作结果:删除表L中的第i个位置元素,并用e返回其值。

这就像一个学生违反了校规,被学校开除,需要把该学生从学生情况表中删除。

(7)ListLength(L)

初始条件:表L存在。

操作结果:返回表L的元素个数。

这就像学校招了新生之后,需要统计学生的总人数,查找学生情况表,看有多少个

学生。

(8)ClearList(&L)

初始条件:表L存在。

操作结果:将表L清空。

这就像学生已经毕业,不再需要保留这些学生信息,将这些学生信息全部清空。

}ADT List