顺序表

#include<stdio.h>
#include<stdlib.h>
#define MaxSize 10

//定义顺序表
typedef struct{
    int number[MaxSize];
    int length;        //顺序表的当前长度
}SqList;

//初始化顺序表
void InitList(SqList &L){
    int num=1;
    L.length=0;
    for(int i=0;i<5;i++){
        L.number[i]=num;
        num++;
        L.length++;
    }
}

//插入操作
void ListInsert(SqList &L,int i,int e){
    if(i<1||i>L.length+1){            //保证数据表元素连续存放
        printf("error\n");
    }
    if(L.length>=MaxSize){            //防止数据溢出
        printf("error\n");
    }
    //插入操作
    for(int j=L.length;j>=i;j--){    //将第i个元素以及之后元素都往后移
        L.number[j]=L.number[j-1];
    }
    L.number[i-1]=e;                //将e插入到第i个位置
    L.length++;
    printf("The length of the SqList is:%d\n",L.length);
}

//删除操作
void ListDelete(SqList &L,int i,int &e){
    if(i<1||i>L.length){
        printf("error");
    }
    e=L.number[i-1];
    for(int j=i;j<L.length;j++){
        L.number[j-1]=L.number[j];
    }
    L.length--;
    printf("The deleted number is:%d\n",e);
}

//按值查找
void LcateElem(SqList L,int e){
    bool judge=0;
    for(int i=0;i<L.length;i++){
        if(L.number[i]==e){
            judge=11;
            printf("The number is number[%d]",i);
        }
    }
    if(judge==0){
        printf("none");
    }
}
//主函数
int main()
{
    SqList L;
    InitList(L);
    //插入
    ListInsert(L,2,6);
    for(int i=0;i<L.length;i++){
        printf("%d\n",L.number[i]);
    }
    //删除
    int e=0;
    ListDelete(L,3,e);
    for(int i=0;i<L.length;i++){
        printf("%d\n",L.number[i]);
    }
    //按值查找
    LcateElem(L,3);
}

 

posted @ 2022-07-13 19:35  CherriesOvO  阅读(25)  评论(0编辑  收藏  举报