数据结构顺序表基本操作 C++

#include<stdio.h> #define MAXSIZE 10 //默认的最大长度  //顺序表类型定义 typedef struct  {     int *elem;  //指示动态分配数组的指针     int length; //顺序表的当前长度 }SqList;  //初始化顺序表 bool InitList(SqList &L){     L.elem=new int[MAXSIZE]; //为顺序表分配空间     if(!L.elem) //存储分配失败         return false;     L.length=0;     return true; }  //销毁顺序表 void DestroyList(SqList &L){     if(L.elem) delete L.elem; //释放存储空间 }  //清空顺序表 void ClearList(SqList &L){     L.length=0; }  //求顺序表的长度 int GetLength(SqList L){     return L.length; }  //判断顺序表是否为空 bool IsEmpty(SqList L){     if(L.length==0) return true;     else return false; }  //顺序表的取值(取第i个元素) bool GetElem(SqList L,int i,int &e){     if(i<1 || i>L.length) //判断i值是否合理         return false;     e=L.elem[i-1];     return true; }  //插入 bool ListInsert(SqList &L,int i,int e){     if(i<1 ||i>L.length+1) return false; //插入位置不合法     if(L.length==MAXSIZE) return false; //存储空间已满,插入失败     for(int j=L.length-1;j>=i-1;j--)         L.elem[j+1]=L.elem[j]; //插入位置及之后的元素后移     L.elem[i-1]=e;     L.length++;     return true;      }  //顺序表的查找 int LocateElem(SqList L,int e){     for(int i=0;i<L.length;i++)         if(L.elem[i]==e) return i+1;     return -1; //查找失败  }  //删除 bool ListDelete(SqList &L,int i){     if(i<1 ||i>L.length) return false; //删除位置不合法     for(int j=i;j<=L.length-1;j++)         L.elem[j-1]=L.elem[j]; //被删除元素之后的元素前移     L.length--;     return true;            }  //遍历 void PrintList(SqList L){     for(int i=0;i<L.length;i++)         printf(L.elem[%d]=%d\n,i,L.elem[i]); }  int main(){     //定义和初始化     SqList L;      InitList(L);     //插入元素     for(int i=1;i<7;i++)         ListInsert(L,i,i);     //遍历     PrintList(L);     //取值     int e;     GetElem(L,3,e);     printf(第三个元素=%d\n,3,e);     //查找     printf(元素3的位置:%d\n, LocateElem(L,3));     //删除元素3     ListDelete(L,3);     //遍历     PrintList(L);     return 0; }