1.线性表:线性表是n个数据元素的有限序列。 (n=0时称作空表;) 2.特点:n>0时,除第一个元素无直接前驱,最后一个元素无直接后继外,其余的每个数据元素只有一个直接前驱和一个直接后继
线性表的抽象数据类型:
ADT List {
数据元素:{同类型元素}
数据关系:{有序对偶 }
operation:
1.{初始化} InitList( &L )
操作前提:未被初始化。
操作结果:构造一个空的线性表 L 。
2.{取元素} GetElem( L, i, &e )
操作前提:线性表 L 已存在,1≤i≤LengthList(L)。
操作结果:用 e 返回 L 中第 i 个元素的值。
3.{查找} LocateElem(L,e):
操作前提:线性表 L 已存在,e为合法元素值。
操作结果:在线性表中L中查找与e相等的元素。若存在,返回元素序号;否则,返回0表示不存在。
4.{插入} ListInsert(&L,i,e)
操作前提:线性表 L 已存在,1≤i≤LengthList(L)+1。
操作结果:在 L 的第 i 个元素之前插入新的元素 e,L 的长度增1。
5.{删除} ListDelete( &L, i, &e )
操作前提:线性表 L 已存在且非空,1≤i≤LengthList(L)。
操作结果:删除 L 的第 i 个元素,并用 e 返回其值,L 的长度减1。
//主要学习以上五种
6.{销毁} DestroyList( &L )
操作前提:线性表 L 已存在。
操作结果:销毁线性表 L 。
7.{清空} ClearList( &L )
操作前提:线性表 L 已存在。
操作结果:将 L 重置为空表。
8.{判空} EmptyList( L )
操作前提:线性表L已存在。
操作结果:若 L 为空表,则返回 TRUE,否则返回 FALSE。
9.{求长度} ListLength( L )
操作前提:线性表 L 已存在。
操作结果:返回 L 中元素个数。
10{遍历} TraverseList(L)
操作前提:线性表已存在。
操作结果:对线性表L进行遍历。
} ADT List
线性表的其它复杂操作,完全可以由以上几种基本操作组合完成。