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