建立一个顺序表,随机产生10个100以内的整数,并按要求完成:
(1)在屏幕上显示顺序表中的10个整数;
(2)把值为x的元素插入到值为a的元素后面,若不存在a,则把x插入到表尾,显示更新后的顺序表
(3)删除顺序表中某一个位序为i的数据元素,并用参数e记录被删除数据元素的值。
已有参考代码:
#include<iostream>
#include<cstdlib>
using namespace std;
const int Maxsize=20;
struct Biao{
int data[Maxsize];
int lenth;
};
Biao get_data(Biao a,int lenth){
for(int i=0;i<lenth;i++){
a.data[i]=(rand()%101);
}
a.lenth=lenth;
return a;
}
Biao get_in(Biao a,int x,int y){
int n=-1;
for(int i=0;i<a.lenth;i++){
if(a.data[i]==x){
n=i;
break;
}
}
if(n==-1){
a.data[a.lenth]=y;
}
else{
for(int i=a.lenth;i>n;i--){
a.data[i+1]=a.data[i];
}
a.data[n+1]=y;
}
a.lenth++;
return a;
}
Biao get_delete(Biao a,int i){
cout<<"删除的元素是:"<<a.data[i-1]<<endl;
for(i=i-1;i<a.lenth-1;i++){
a.data[i]=a.data[i+1];
}
a.lenth--;
return a;
}
void show(Biao a){
for(int i=0;i<a.lenth;i++){
cout<<a.data[i]<<" ";
}
}
int main(){
Biao num;
num=get_data(num,10);
cout<<"初始顺序表:"<<endl;
show(num);
cout<<endl<<"增加100加到84数据后的顺序表:"<<endl;
num=get_in(num,84,100);
show(num);
cout<<endl<<"删除第4个数据后的顺序表:"<<endl;
num=get_delete(num,4);
show(num);
return 0;
}
试运行上面的代码,没发现什么问题啊。