我意识到数据结构的重要性了,决定把把各种类型写一遍,熟练一下,我觉得对这些应该达到了如指掌的地步,才算可以...
线性表 顺序储存
code by Apan
#include<iostream>
using namespace std;
定义线性表
#define MAXSIZE 1000
typedef int DATATYPE;
typedef struct
{
DATATYPE data[MAXSIZE];
int last;
}Seqlist;
创建线性表
void Creat_Seqlist(Seqlist* L)
{
cout<<"请输入线性表的长度: ";//输入线性表长度
cin>>L->last;
for(int i=0;i<L->last;++i)
{
cout<<"输入第"<<i+1<<"个数据: ";
cin>>L->data[i];
}
}
插入操作
void Insert_Seqlist(Seqlist* L ,int i,DATATYPE x)
{
///检查线性表是否已满
if(L->last==MAXSIZE)
{
cout<<"线性表已满,不能插入!" ;
return ;
}
//检查插入位置的正确性
if(i<0||i>L->last)
{
cout<<"插入位置错误!";
return ;
}
//插入数据
else
{
for(int j=L->last-1;j>=i-1;j--)
L->data[j+1]=L->data[j];
L->data[i-1]=x;
L->last++;
}
}
//删除操作
void Del_Seqlist(Seqlist* L ,int i)
{
/检查是否为空栈
if(L->last<0)
{
cout<<"线性表为空!";
return ;
}
/检查删除位置
if(i<1||i>L->last)
{
cout<<"无法找到!";
return ;
}
/删除元素
else
{
for(int j=i-1;j<L->last-1;++j)
L->data[j]=L->data[j+1];
L->last--;
}
}
//按值查找
void Location_Seqlist(Seqlist* L,DATATYPE x)
{
int i=0;
while(i<L->last&&L->data[i]!=x)
i++;
if(i==L->last)
cout<<"不存在该值!";
else
cout<<"元素 "<<x<<" 是第 "<<i+1<<" 个元素"<<endl;
}
/输出线性表
void Out_Seqlist(Seqlist L)
{
cout<<"/n线性表如下:/n";
for(int i=0;i<L.last;++i)
cout<<L.data[i]<<" ";
cout<<endl;
}
主函数
int main()
{
//建立线性表
cout<<"建立线性表 /n";
Seqlist seq;
Creat_Seqlist(&seq);
Out_Seqlist(seq);
//插入元素
cout<<"/n/n/n插入元素/n"
<<"请输入插入的位置:";
int i;
DATATYPE x;
cin>>i;
cout<<"/n请输入要插入的元素:";
cin>>x;
Insert_Seqlist(&seq,i,x);
Out_Seqlist(seq);
///删除元素
cout<<"/n/n/n删除元素/n删除第几个元素:";
cin>>i;
Del_Seqlist(&seq,i);
Out_Seqlist(seq);
/按值查找
cout<<"/n/n/n按值查找/n请输入要查找的值: /n";
cin>>x;
Location_Seqlist(&seq ,x);
Out_Seqlist(seq);
cout<<"/n/n/n谢谢参与,再见!"<<endl;
return 0;
}
线性表--顺序储存结构
最新推荐文章于 2020-11-29 08:39:46 发布