4、am>usingnamespacestd;#include#defineLIST_INIT_SIZE100#defineLISTINCREMENT10#defineOVERFLOW-1#defineOK1#defineERROR0typedefintStatus;typedefintElemType;typedefintKeyType;typedefstruct{ElemType*elem;KeyType*key;intlength;intlistsize;}SqList;typedefstruct{KeyType
5、key;}SElemType;StatusInitList(SqList&L)/*創(chuàng)建順序表*/{intlength1;printf("請確定順序表的長度:");scanf("%d",&length1);L.listsize=length1;L.elem=(ElemType*)malloc(length1*sizeof(ElemType));if(!L.elem){printf("outofspace");exit(OVERFLOW);}L.length=0;returnOK;}StatusListinsert(SqList&L,in
6、ti,ElemTypee){ElemType*p,*q,*newbase;if(i<1
7、
8、i>L.length+1){returnERROR;}if(L.length>L.listsize){newbase=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType));if(newbase==NULL){printf("outofspace");return(OVERFLOW);}L.listsize+=LISTINCREMENT;}p=&(L.elem[
9、i-1]);for(q=&(L.elem[L.length-1]);q>=p;q--){*(q+1)=*q;}L.elem[i-1]=e;L.length++;returnOK;}/*在i元素的前面插入元素e*/StatusDeleteList(SqList&L,inti){ElemType*q,*p;if(i<1
10、
11、i>L.length){returnERROR;}q=&(L.elem[i-1]);p=L.elem+L.length-1;for(q++;q<=p;q++){*(q-1)=*q;}L.length--;returnOK
12、;}/*刪除i個元素*/StatusListsearch(SqList&L,intw){inti,j,k;i=1;j=L.length;while(i<=j){k=(i+j)/2;if(L.elem[k-1]==w){p