您的位置:首页 > 编程语言 > C语言/C++

2、(c++)顺序表的建立、输出、查找、按元素位置删除代码

2017-09-24 13:25 381 查看
#include<iostream>
using namespace std;
#define Maxsize 25
typedef struct{
int data[Maxsize];
int length;
}Seqlist;
void Createlist(Seqlist *L,int n){
int i;
cout<<"请输入顺序表元素:"<<endl;
for(i=0;i<n;i++)
{
cin>>L->data[i];
L->length=n;
}
}
void Printlist(Seqlist *L,int n){
int i;
cout<<"顺序表为:";
for(i=0;i<n;i++)
{
cout<<L->data[i]<<" ";
}
}
void Locate(Seqlist *L,int n){
int i=1,*p;
p=L->data;
cout<<endl;
cout<<"请输入要查找的元素n:";
cin>>n;
while(i<=L->length&&(*p++!=n))  ++i;
if(i<=L->length)
cout<<"要查找的数的位置为:"<<i<<endl;
}
void Listinsert(Seqlist *L,int i,int n){
int *q,*p;
cout<<"请输入要插入的数:";
cin>>n;
if(L->length==0)
{
L->data[0]=n;
++L->length;
}
q=&(L->data[0]);
while((*q<=n)&&(q<=&(L->data[L->length-1])))
{
++q;
}
++L->length;
for(p=&(L->data[L->length-1]); p>=q ;--p)
{
*(p+1)=*p;
*p=n;
}
cout<<"输出新表:"<<endl;
for(i=0;i<L->length;i++)
{
cout<<L->data[i]<<" ";
}
}
void Listdelete(Seqlist *L,int i,int n){
int *p,*q;
cout<<endl;
cout<<"请输入要删除的数的位置:"<<endl;;
cin>>i;
if(i<1||i>L->length)
cout<<"删除元素失败!";
p=&L->data[i-1];
n=*p;
q=L->data+L->length-1;
for(++p;p<=q;++p)
{
*(p-1)=*p;
--L->length;
}
for(i=0;i<L->length+1;i++)
{
cout<<L->data[i]<<" ";
}
}
void main(){
void Createlist(Seqlist *L,int n);
void Printlist(Seqlist *L,int n);
void Locate(Seqlist *L,int n);
void Listinsert(Seqlist *L,int i,int n);
void Listdelete(Seqlist *L,int i,int n);
int n;
int i=0;
Seqlist L;
L.length=0;
cout<<"请输入线性表长度:";
cin>>n;
Createlist(&L,n);
Printlist(&L,n);
Locate(&L,n);
Listinsert(&L,i,n);
Listdelete(&L,i,n);
cout<<endl;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐