1、#includeusing namespace std;int OVERFLOW=-2;int ERROR=0;int OK=1;int j;/-顺序表的存储结构-#define MAXSIZE 10 /当前顺序表可能达到的最大长度#define LISTINCREMENT 5 typedef int ElemType;typedef int Status;typedef structElemType *elem;/存储空间的基地址int length;/当前长度,表中有多少个元素int listsize;SqList;/-初始化-Status InitList_Sq(SqList /为顺序表
2、分配一个大小为 MAXSIZE 的数组空间if(!L.elem)exit(OVERFLOW);/存储空间分配失败L.listsize=MAXSIZE;L.length=0;/空表的长度为 0return OK;/-建立-Status Build_Sq(SqList coutn;if(nMAXSIZE)/如果 n 的值大于当前空间L.elem=new ElemTypen+LISTINCREMENT;if(!L.elem)exit(OVERFLOW);L.listsize=n+LISTINCREMENT;coutL.elemi;L.length=n;return OK;/-查找-int Locat
3、eElem_Sq(SqList L,ElemType e)for(int i=0;iL.length+1)return ERROR;/i 值不合法if(L.length=MAXSIZE)return ERROR;/当前存储空间已满for(j=L.length-1;j=i-1;j-)L.elemj+1=L.elemj;/插入位置及之后的元素后移L.elemi-1=e;/将新元素 e 放入第 i 个位置+L.length;/表长增 1return OK;/-删除第 i 个元素-Status ListDelete_Sq(SqList e=L.elemi-1;/将欲删除的元素保留在 e 中for(j=i;jchoice;switch(choice)case 1:Build_Sq(L);break;case 2:int n;coute;n=LocateElem_Sq(L,e);coutchoice1;switch(choice1)case 1:couti;ListDelete_Sq(L,i,e);coute;ListDel_Sq(L,e);couti;coute;ListInsert_Sq(L,i,e);break;case 5:return 0;default:break;cout“请选择:“;return 0;