您的位置:首页 > 理论基础 > 数据结构算法

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

2018-06-26 17:58 405 查看
版权声明: https://blog.csdn.net/qq_41542894/article/details/80818842
#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;
}

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐