1、线性表特点简记
(1)存在唯一“第一个”
(2)存在唯一“最后一个”
(3)除第一个其余仅有一前驱
(3)除最后一个其余仅有一后驱
2、线性表抽象定义
ADT List{
数据对象:D={a[i]|a[i]∈ElemSet,i=1,2,…,n,n>=0}
数据关系: R1={ (a[i-1],a[i]) |a[i-1],a[i]∈D,i=2,…,n} 基本操作:
(1)InitList(&L)
//构造一个空表L
(2)DestroyList(&L)
(3)ClearList(&L)
//在线性表L存在的前提下重置为空表
(4)ListEmpty(L)
//在线性表L存在的前提下判断是否为空表
(5)ListLength(L)
//在线性表L存在的前提下返回元素个数
(6)GetElem(L,i,&e)
//在线性表L存在的前提下用e返回第i个元素值
(7)LocateElem(L,e,compare())
//在线性表L存在的前提下,compare()为数据元素判定函数
(8)PriorElem(L,cur_e,&pre_e)
//在线性表L存在的前提下,用pre_e返回cur_e的前驱
(9)NextElem(L,cur_e,&next_e)
//在线性表L存在的前提下,用next_e返回cur_e的后继
(10)ListInsert(&L,i,e)
//在线性表L存在的前提下,在L中第i位插入e元素,长度+1
(11)ListDelete(&L,i,&e)
/在线性表L存在的前提下,删除L中第i位,e元素返回其值,长度-1
(12)ListTraverse(L,visit())
//在线性表L存在的前提下,对L中每个元素调用visit()函数
}ADT List