#include <iostream>
#include <iomanip>
using namespace std;
#define Max 100
typedef struct A
{ int *s;
int MAXLenth;
int Lenth;
}A;
void Create(A *L,int n)
{ L->MAXLenth=Max;
cout<<"顺序表的长度n:"<<endl;
cin>>n;
L->Lenth=n;
L->s=new int [n];
cout<<"顺序表的元素:"<<endl;
for(int i=1;i<=L->Lenth;i++)
{
cin>>L->s[i];
}
}
void Insert(A *L,int i,int e)
{ cout<<"请输入插入位置和元素:"<<endl;
cin>>i>>e;
if((L->Lenth<L->MAXLenth)&&(i>=1)&&(i<=L->Lenth))
{ for(int j=L->Lenth+1;j>i;j--)
L->s[j]=L->s[j-1];
L->s[i]=e;
L->Lenth++;
}
else cout<<"插入位置不正确"<<endl;
}
void Delete(A *L,int t)//删除表t位置的元素
{ cout<<"删除元素的位置:"<<endl;
cin>>t;
if(t<0||t>L->Lenth||t>L->MAXLenth)
cout<<"没有这个位置"<<endl;
else
{for(int j=t+1;j<=L->Lenth;j++)
L->s[j-1]=L->s[j];
L->Lenth--;
}
}
void Delete1(A *L,int s,int t)
{ cout<<"输入删除s到t之间的所有元素的位置s和t:"<<endl;
cin>>s>>t;
int c;
c=t-s+1;
for(int j=s+c;j<=L->Lenth;j++)
L->s[j-c]=L->s[j];
L->Lenth=L->Lenth-c;
}
int Length(A *L)
{return (L->Lenth);
}
void Display(A *L)
{ cout<<"顺序表为:"<<endl;
for( int i=1;i<=L->Lenth;i++)
cout<<L->s[i]<<setw(4);
cout<<endl;
}
void Frame()
{cout<<setw(10)<<"///////////////////////////////////////////////////////"<<endl;
cout<<setw(10)<<"***********顺序表的相关操作*****************************"<<endl;
cout<<setw(10)<<"************请输入你的选择:****************************"<<endl;
cout<<setw(10)<<"************1.建立顺序表:*******************************"<<endl;
cout<<setw(10)<<"************2.在顺序表中删除s到t的元素:*****************"<<endl;
cout<<setw(10)<<"************3.在顺序表中删除元素位置:*******************"<<endl;
cout<<setw(10)<<"************4.输出顺序表:*******************************"<<endl;
cout<<setw(10)<<"************5.在顺序表中插入元素:*******************************"<<endl;
cout<<setw(10)<<"************6.顺序表中的长度:*******************************"<<endl;
cout<<setw(10)<<"************0.退出系统:*********************************"<<endl;
}
int main()
{ A L;
int t,n,s,c=0,a,b;
/*cout<<"顺序表的长度n:"<<endl;
cin>>n;
cout<<"顺序表的元素:"<<endl;
Create(&L,n);
cout<<"输入删除s到t之间的所有元素的位置s和t:"<<endl;
cin>>s>>t;
Delete1(&L,s,t);
Display(&L);*/
do
{Frame();
cin>>c;
switch(c)
{case 1: Create(&L,n);break;
case 2: Delete1(&L,s,t);break;
case 3: Delete(&L,t);break;
case 4: Display(&L);break;
case 5: Insert(&L,a,b);break;
case 6: cout<<"顺序表的长度:"<<Length(&L)<<endl;break;
// default: cout<<"错误":<<endl;break;
}
}while(c!=0);
return 0;
}//这个借你研究下,有问题别介意,看明白了,顺序表也就差不多了吧。
你那个我给你改了有点怕你发火