数据结构 c++实现顺序表的基本操作/初始化/输入/输出/插入/删除

#include <iostream>
    using namespace std;

    #define Maxsize 15
    using namespace std;

    typedef int DataType;
    typedef struct{
        DataType data[Maxsize];   //建立一维数组
        int SeqLength;    //线性表长度

    }SeqList;

    //初始化顺序表
    SeqList *Init_SeqList();
    //插入顺序表的内容
    void Define_SeqList(SeqList *L,int n);
    //取出顺序表中的元素
    void DisPlay_SeqLIst(SeqList *L);
    //添加元素到指定的位置
    int InSert_SeqList(SeqList *L,int i,DataType x);
    //删除指定位置元素
    int Delete_SeqList(SeqList *L, int i);


    //顺序化初始化算法并清空表
    SeqList *Init_SeqList()
    {
        SeqList *L;
        L=new SeqList;
        L->SeqLength=0;  //长度设置为-1
        return L;
    }

    //给顺序表插入元素内容
    void Define_SeqList(SeqList *L,int n)
    {
        cout<<"请依次输入顺序表要存储的元素"<<endl;
        for(int i=0;i<n;i++)
        {
            cin>>L->data[i];    //输入数组元素
            L->SeqLength++;
        }
    }

    //取出顺序表元素内容
    void DisPlay_SeqLIst(SeqList *L)
    {
        int i;
        for(i=0;i<=L->SeqLength-1;i++)
        {
            cout<<L->data[i]<<" ";
        }
        cout<<endl;
    }

    //添加元素到某个位置
    int InSert_SeqList(SeqList *L,int i,DataType x)
    {
        cout<<"把元素"<<x<<"位置上"<<endl;

        if (i < 1 || i > L->SeqLength + 1) // 判断是否插错
        {
            cout<<"插入位置错误"<<endl;
            return 0;
        }

        if (L->SeqLength == Maxsize-1)     //数组长度设定为-1 表满
        {
            cout<<"表满"<<endl;
            return -1;
        }
        for(int j = L-> SeqLength - 1; j>=1; j--)  //i之后全部往后移
        {
         L->data[j+1]=L->data[j];
        }
        L->data[i-1] = x;                   //插入
        L->SeqLength++;
        cout<<"插入成功"<<endl;
        DisPlay_SeqLIst(L);
        return 1;
    }

    //删除操作
    int Delete_SeqList(SeqList *L, int i)
    {
        cout<<"将位置"<<i<<"的元素删除"<<endl;
        int j;
        if(i<1||i<L->SeqLength-1)
        {
            cout<<"不存在第"<<i<<"个元素"<<endl;
            return 0;
        }
        for(j=i;j<L->SeqLength-1;j++)
        {
            L->data[j]=L->SeqLength-1;
        }
        L->SeqLength--;
        cout<<"删除成功"<<endl;
        DisPlay_SeqLIst(L);
        return 1;
    }
    int main()
    {
        SeqList *L;  //顺序表定义
        L=Init_SeqList();  //顺序表初始化
        Define_SeqList(L,6); //定义顺序表
        DisPlay_SeqLIst(L);  //顺序表的输出
        InSert_SeqList(L,4,3); //顺序表的插入
        Delete_SeqList(L,5);  //顺序表删除
        return 0;
    }

  • 13
    点赞
  • 93
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值