顺序表按值操作c++

来源:互联网 发布:淘宝直通车怎么退款 编辑:程序博客网 时间:2024/06/08 13:45
#include<iostream>
using namespace std;
int main()
{
int n,i,j,c,f;
int a[50],b[50],temp;
while(cin>>n)
{
f=0;
for(i=0;i<n;i++)
cin>>a[i];
cin>>c;
for(i=0;i<n;i++)
{
if(a[i]==c)

++f;
}

if(f>0)
{
j=0;
for(i=0;i<n;i++)
{
if(a[i]!=c)

b[j++]=a[i];

}
if(j==0)
continue;
for(i=0;i<j;i++)
{
if(i==0)
cout<<b[0];
else
cout<<" "<<b[i];
}
cout<<endl;
}
else if(f==0)
{
temp=0;
n++;
a[n-1]=c;
for(j=0;j<n;j++) 

for (i=0;i<n-j-1;i++) 
if (a[i]>a[i+1]) 
{
temp=a[i]; 
a[i]=a[i+1]; 
a[i+1]=temp;

}
for(i=0;i<n;i++)
{
if(i==0)
cout<<a[0];
else
cout<<" "<<a[i];
}
cout<<endl;

}

}
return 0;

}



Problem Description

对值递增有序的顺序表进行以下操作:若表中存在值为x的元素,则将它从表中删除;否则,就往表中插入一个值为x的元素,并保持表值递增有序的性质不变(假设表中没有值相同的元素)。处理后若为空表则不输出。

 Input

每组数据包括3行,第一行表示顺序表的长度n(不会超过50);第二行表示顺序表的所有元素;第三行表示x值。

 Output

输出执行操作后的顺序表,元素之间用一个空格分隔。

 Sample Input

51 3 5 7 9351 3 5 7 94

 Sample Output

1 5 7 91 3 4 5 7 9

 Author

hwt, hqh

 Recommend

zh

0 0