4、TRUE,否則返回FALSE。ListLength(L)初始條件:線性表L已存在。操作結(jié)果:返回L中數(shù)據(jù)元素個數(shù)。GetElem(L,I,&e)初始條件:線性表L已存在,1<=i<=ListLength(L)。操作結(jié)果:用e返回L中第i個數(shù)據(jù)元素的值。LocateElem(L,e,compare())初始條件:線性表L已存在,compare()是數(shù)據(jù)元素判定的函數(shù)。操作結(jié)果:返回L中第1個與e滿足關(guān)系compare()的數(shù)據(jù)元素的位序。若這樣的數(shù)據(jù)元素不存在,則返回值為0。PriorElem(L,cur_e,&pre_e)初始條件:線性表L已存在。操作結(jié)果:
5、若cur_e是L的數(shù)據(jù)元素,且不是第一個,則用pre_e返回它的前驅(qū),否則操作失敗,pre_e無定義。NextElem(L,cur_e,&next_e)初始條件:線性表L已存在。操作結(jié)果:若cur_e是L的數(shù)據(jù)元素,且不是最后一個,則用pre_e返回它的后繼,否則操作失敗,pre_e無定義。ListInsert(&L,I,e)初始條件:線性表L已存在,1<=i<=ListLength(L)+1。操作結(jié)果:在L中第i個位置之前插入新的數(shù)據(jù)元素e,L的長度加1。ListDelete(&L,I,&e)初始條件:線性表L已存在且非空,1<=i<=ListLength
6、(L)。操作結(jié)果:刪除L中第i個數(shù)據(jù)元素,并用e返回其值,L的長度減1。ListTraverse(L,visit())初始條件:線性表L已存在。操作結(jié)果:依次對L的每個數(shù)據(jù)元素調(diào)用函數(shù)visit()。一旦visit()失敗,則操作失敗。}ADTList3.詳細(xì)設(shè)計(jì)(1)抽象數(shù)據(jù)類型線性表鏈?zhǔn)酱鎯Y(jié)構(gòu)的表示和實(shí)現(xiàn)c1.h:#include#include#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineINFEASIBLE-1#defineOVERFLOW-2ty
7、pedefintStatus;c2.h:typedefintElemType;typedefstructLNode{ElemTypedata;structLNode*next;}LNode,*Linklist;;b02-1.h:intCreatelist_L(Linklist&L,intn){Linklistp;inti;L=(Linklist)malloc(sizeof(LNode));L->next=NULL;for(i=n;i>0;--i){p=(Linklist)malloc(sizeof(LNode));scanf("%d",&p->data);p
8、->next=L->next;L->next=p;}returnOK;}StatusGetElem_L(LinklistL,inti,ElemType&e){Linklistp;intj;p=L->next;j=1;while(p&&jnext;++j;}if(!p
9、
10、j>i)returnERROR;e=p->data;returnOK;}StatusListInsert_L(Linklist&L,inti,ElemTypee){Linklistp,s;intj;p=L;j=0;while(p&&jnext;++j;}
11、if(!p
12、
13、j>i-1)returnERROR;s