1.数据对象 2.数据关系 3.基本操作
抽象数据类型线性表定义:
ADT List{
数据对象:D={ai|ai属于Elemset,(i=1,2.....n,n>=0)}
数据关系:R={<ai-1,ai>|ai-1,ai属于D,(i=2,3...,n)}
基本操作:
初始线性表: InitList(&L);//初始化线性表,构造一个空的线性表L
销毁线性表: DestroyList(&L);//销毁线性表(表不存在了)
清空线性表:ClearList(&L);//清空线性表 (表还存在)
确认表是否为空: ListEmpty(L);//表存在的情况下,若表为空,返回true,否则为false.
表长: ListLength(L);//在表存在的情况下,返回表的元素个数,长度。
找第i个数字:GetElem(L,i,&e);//在表存在情况下,用e返回线性表L中第i个数据元素的值。
看表里面有没有元素e:
LocateElem(L,i,compare());//compare是数据元素判定函数,返回L中第一个与e满足compare()的数据元
素的位序,若这样的数据元素不存在,则返回值为0;
找前趋: PriorElem(L,cur_e,&pre_e);//若cur_e是L的数据元素,且不是第一个,则用pre_e返回它的前趋,否则操作失败;pre_e无意义;
找后继: NextElem(L,cur_e,&next_e);若cur_e是L的数据元素,且不是第最后一个,则用next_e返回它的后继,否则操作失败;next_e无意义;
插入元素:ListInsert(&L,i,e);//在第i个位置插入新元素e,L的长度加1
删除元素: ListDelete(&L,i,&e);//删除第i个位置的数据元素,并且用e返回其值,L的长度减1.
遍历: ListTraverse(&L,visited());//依次对线性表中每个元素调用visited();
}ADT List