线性表的抽象数据类型的ADL描述

来源:互联网 发布:水晶报表连接数据库 编辑:程序博客网 时间:2024/05/06 08:35

ADT List

{

       数据对象:D={ai|aiElemSet,i=1,2,…,n,n0}

       数据关系:R1={<ai-1,ai>|ai-1,aiD,i=2,3,,n}

       基本操作:

              InitList(&L);

                     操作结果:构造一个空的线性表L

              DestroyList(&L);

                     初始条件:线性表L已存在。

                     操作结果:销毁线性表L

              ClearList(&L);

                     初始条件:线性表L已存在。

                     操作结果:将L重置为空表。

              ListEmpty(&L);

                     初始条件:线性表L已存在。

                     操作结果:若L空表,则返回TRUE,否则返回FALSE

              ListLength(L);

                     初始条件:线性表L已存在。

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

              GetElem(L,I,&e);

                     初始条件:线性表L已存在,1iListLength(L)

                     操作结果:用e返回L中第i数据元素的值。

              LocateElem(L,e,compare());

                     初始条件:线性表L已存在,compare()是数据元素判定函数。

                     操作结果:返回L中第1个与e满足关系compare()的数据元素的位序。若

                     这样的数据元素不存在,则返回值为0

              ListSort(&L,compare())

                     初始条件:线性表L已存在,compare()是数据元素判定函数。

                     操作结果:利用compare()函数,使L有序。

              PriorElem(L,cur_e,&pre_e);

                     初始条件:线性表L已存在。

                     操作结果:若cur_eL的数据元素,且不是第一个,则用pre_e返回他的

                     前驱,否则操作失败,pre_e无意义。

              NextElem(L,cur_e,&next_e);

初始条件:线性表L已存在。

                     操作结果:若cur_eL的数据元素,且不是第一个,则用next_e返回他的

                     后继,否则操作失败,next_e无意义。

              ListInsert(&L,I,e);

                     初始条件:线性表L已存在,1iListLength(L)+1

                     操作结果:在L中第i个位置之前插入新的数据元素eL的长度加1

              ListDelete(&L,I,&e);

                     初始条件:线性表L已存在且非空,1iListLength(L)

                     操作结果:删除L的第i个数据元素,并用e返回其值,L的长度减1

              ListTraverse(L,visit());

                     初始条件:线性表L已存在。

                     操作结果:依次对L的每个数据元素条用函数visit()。一旦visit()失败,则

                     操作失败。

}ADT List