抽象数据类型线性表的定义如下:ADT List {数据对象:D= a; | a; EElemSet , i-1,2,...,n,n≥0 }数据关系:R1 = ( <ai-1 ,a; >lai-1 ,a; ED,i-2,..,n 基本操作:(&L)InitList(操作结果:构造一个空的线性表L
抽象数据类型线性表的定义如下: ADT List { 数据对象: D={ ai | ai ∈ElemSet,i=1,2,.,n, n≥0 } 数据关系: R1={ <ai-1 ,ai >|ai-1 ,ai∈D, i=2,.,n } 基本操作: InitList( &L ) 操作结果:构造一个空的线性表L
DestroyList(&L)初始条件:线性表L已存在操作结果:销毁线性表L。ListEmpty(L)初始条件:线性表L已存在。操作结果:若L为空表,则返回TRUE,否则FALSE。ListLength(L)初始条件:线性表L已存在操作结果:返回L中元素个数
DestroyList( &L ) 初始条件:线性表L已存在。 操作结果:销毁线性表L。 ListEmpty( L ) 初始条件:线性表L已存在。 操 作 结 果 : 若 L 为 空 表 , 则返回 TRUE,否则FALSE。 ListLength( L ) 初始条件:线性表L已存在。 操作结果:返回L中元素个数
GetElem(L,i,&e初始条件:线性表L已存在,1<i<ListLength(L)操作结果:用e返回L中第i个元素的值LocateElem(L,e,compareO)初始条件:线性表L已存在,compare()是元素判定函数。操作结果:返回L中第i个与e满足关系compare()的元素的位序。若这样的元素不存在,则返回值为0
GetElem( L, i, &e ) 初始条件:线性表L已存在,1≤i≤ListLength (L) 操作结果:用e返回L中第i个元素的值。 LocateElem( L, e, compare( ) ) 初始条件:线性表L已存在,compare( )是 元素判定函数。 操作结果:返回L中第i个与e满足关系 compare( )的元素的位序。若这样的元素不存 在,则返回值为0
PriorElem(L,cur e,&pre e)初始条件:线性表L已存在操作结果:若cure是L的元素,但不是第一个,则用pree返回它的前驱,否则操作失败,pree无定义NextElem(L, cur e, &next e)引用型操作初始条件:线性表L已存操作结果:若cure是L的元素,但不是最后一个,则用nexte返回它的后继,否则操作失败,nexte无定义
PriorElem( L, cur_e, &pre_e ) 初始条件:线性表L已存在。 操作结果:若cur_e是L的元素,但不是第 一个,则用pre_e 返回它的前驱,否则操作失 败,pre_e无定义。 NextElem( L, cur_e, &next_e ) 初始条件:线性表L已存在。 操作结果:若cur_e是L的元素,但不是最 后一个,则用next_e返回它的后继,否则操 作失败,next_e无定义。 引用型操作
ListTraverse(Lvisit())初始条件:线性表L已存在。加工型操作操作结果:依次对L的每个元系训用函数visit()。一旦visit()失败,则操作失败ClearList(&L)初始条件:线性表L已存在。操作结果:将L重置为空表PutElem(L,i, &e)初始条件:线性表L已存在,1≤i<ListLength (L)操作结果:L中第i个元素赋值同e的值
ListTraverse(L, visit( )) 初始条件:线性表L已存在。 操作结果:依次对L的每个元素调用函数 visit( )。一旦visit( )失败,则操作失败。 ClearList( &L ) 初始条件:线性表L已存在。 操作结果:将L重置为空表。 PutElem( L, i, &e ) 初 始 条 件 : 线 性 表 L 已存在 , 1≤i≤ ListLength (L) 操作结果:L中第i个元素赋值同e的值。 加工型操作