南邮OJ 1014 数据的插入与删除

来源:互联网 发布:爱奇艺视频mac 编辑:程序博客网 时间:2024/05/29 09:48

题目描述:在一组数据(数目不超过10000中,插入新数,删除所有与给定数相等的数据。

题目链接:点击打开链接

#include <iostream>using namespace std;int main(){int a[10000];//static int a[10001];int b;int i =0;int x,y;cin >> b;//先读取数据while ((b != -1)&&(b>=0))  {a[i] = b;i++;cin >> b;}//读取要添加的数据cin >> x;//读取要删除的数据cin >> y;if (i>0){   //对读取的数据进行排序,最原始的数据用j   for (int j = 0;j<i;j++)  {  for (int k=j+1;k<i;k++)  {if (a[j] > a[k]){int temp;temp = a[k];a[k] = a[j];a[j] = temp;//swap(a[j],a[k]);}  }     }  //显示部分    for (int j=0; j<i-1;j++)    {    cout << a[j] << ",";   }cout << a[i-1];}else     cout << "No elements.";cout << endl;//添加数据后排序,用nif (i>0){   for (int n=0; n<i;n++)   {  if (a[n] > x)  { for (int m=i-1;m>=n;m--) {a[m+1] =a[m]; }     a[n] = x; break;  }   }  for (int j=0; j<i;j++)  {   cout << a[j] << ",";      }  cout << a[i];  cout << endl;}else{cout << x << endl;}//删除数据后排序,用p,qint e = i+1;int p=0;if (e==1){}else if (e>1){   while ( p < e)  { if (a[p] == y) {for (int q=p ; q<e;q++){a[q] = a[q+1];}e = e-1;continue; } p++; }}if (e>1){   for (int j=0; j< e-1;j++)   {   cout << a[j] << ",";   }   cout << a[e-1];}elsecout << "No elements.";cout << endl;return 0;}
本题几个点:

1,要将输入的数据进行排序,我没有用比较好的排序方法,只是用了冒泡排序(好像是的,没有系统的学过数据结构),其中交换数据的那部分代码,原先是直接使用swap函数,但是怎么也不能通过,后经论坛高人指点修改了代码,后来就通过了!

2,  将指定的数插在已经排序的序列中,好像数据结构中有。

3,删除相同数据也有!

整体感觉自己的代码量太少,没有系统性,都是修修改改的,没有主题思想什么的,还是要多练习!

0 0
原创粉丝点击