#include
      //c++头文件using namespace std;  #define LIST_INIT_SIZE 20     //预定义常量#define LISTINCREMENT 5#define OK 1#define ERROR 0typedef int ElemType;              //定义类型typedef int Status;typedef struct                        //线性表结构体定义{   ElemType *elem;   int length;   int listsize;}SqList;Status InitList_Sq(SqList &L)                        //创建空的线性表{   L.elem=new ElemType[LIST_INIT_SIZE];             //申请空间   L.length=0;                                      //令表中数据长度为零   L.listsize=LIST_INIT_SIZE;                       //将所申请的空间给予元素空间   return OK;                         }Status CreateList_Sq(SqList &L,int n)                   //创建一个线性表{ int i; InitList_Sq(L);                                      //创建空表 if(n>L.listsize)                                       //保证空间足够 {   //续开辟空间 }    L.length=n;                                           cout<<"please input "<
<<" numbers:"; for(i=0;i
>L.elem[i]; return OK;}Status OutputList_Sq(SqList L)                       //输出线性表{  int i;  cout<<"The list is:";  for(i=0;i
<
<<" ";  cout<
L.length+1)               //     (1)判断插入元素下标i的合法性(1---L.length+1)   return ERROR;  if(L.length>=L.listsize)            //判断空间是否够用  {    //续开辟空间  }  for(j=L.length-1;j>=i-1;j--)         //   (2)  下标L.length-1----i-1的元素,后移一个位置   L.elem[j+1]=L.elem[j];  L.elem[i-1]=e;                       //     (3)      插入e(下标i-1)  L.length++;                           //    (4)       数据元素长度加一  return OK;}Status ListDelete_Sq(SqList &L,int i,ElemType &e)                //删除元素,并用e返回该数据{ int *p,*q;   if(i<1||i>L.length)                                            //  (1)  判断插入元素下标i的合法性(1---L.length+1)    return ERROR;   p=&(L.elem[i-1]);                                              //   (2)      取第i个元素的地址,并用e取其中数据   e=*p;   q=L.elem+L.length-1;            //最后(表尾)元素的位置   for(++p;p<=q;++p)    *(p-1)=*p;                                                  //   (3)   元素依次左移   --L.length;                                                     //    (4)      元素长度减一   return e;}Status ListLength_Sq(SqList &L)             //求元素长度{ int i,p=0; for(i=0;i
<<"The length is "<

<<"\n"; return OK;}Status PriorElem_Sq(SqList &L,int cur_e,ElemType &pre_e)        // 求第cur_e个数据元素的前驱,用pre_e返回{ int i,*p=0;    for(i=0;i

L.length)                                                return ERROR; else{   p=&(L.elem[i-1]);        e=*p; }   return e;}Status DestroyList(SqList &L)                       //销毁线性表{free(L.elem);                                       //释放空间L.elem=NULL;L.length=0;L.listsize=0;cout<< "线性表已销毁! "<