编辑代码

#include <stdio.h>//顺序表的插入
#define MaxSize 50
typedef int ElemType;
typedef struct{
    ElemType data[MaxSize];
    int length;
}SqList;//初始化一个顺序表
//因为要改变顺序表里面的数值所以要用引用符号&
bool ListInsert(SqList &l,int i,ElemType elem){
    if(i<1||i>l.length){
        return false;
    }//判断插入位置是否合法
    if(MaxSize==l.length){
        return false;
    }//判断顺序表是否已经满了
    for(int j=l.length;j>=i;j--){
        l.data[j]=l.data[j-1];
    }
    l.data[i-1]=elem;//将elem插入第i个位置;
    l.length++;//插入一个数顺序表长度加一
    return true;
}//顺序表的插入函数
//删除顺序表中的元素
bool DeleteList(SqList &l,int i,ElemType &element){
    if(i<1||i>l.length){
        return false;
    }
    element=l.data[i-1];//数组下标是从0开始的
    for(int j=i;j<=l.length;j++){
        l.data[j-1]=l.data[j];
    }
    l.length--;
    return true;
}
//整形返回值要么为正数即为true要么为0即为false
int FindElem(SqList l,ElemType elem){
   for(int i=1;i<=l.length;i++){
       if(elem==l.data[i-1]){
           return i;
       }
   }
   return 0;
}
void PrintSqList(SqList l){
    for(int i=0;i<l.length;i++){
        printf("%3d",l.data[i]);
    }
    printf("\n");
}//将顺序表里面的数依次打印出来
int main() {
    SqList l;
    bool ret;//返回值判断是否插入成功
    int del;
    int pos;
    l.data[0]=1;
    l.data[1]=2;
    l.data[2]=3;
    l.length=3;
    ret= ListInsert(l,2,60);
    if(ret){
        printf("insert success\n");
        PrintSqList(l);
    }else{
        printf("insert failed\n");
    }
    printf("-----------------------------\n");
    ret=DeleteList(l,1,del);
    if(ret){
        printf("delete success\n");
        PrintSqList(l);
    }else{
        printf("delete failed\n");
    }
    pos=FindElem(l,60);
    if(pos){
        printf("find element success\n");
        printf("pos=%d",pos);
    }else{
        printf("find element failed\n");
    }
    return 0;
}