1004

来源:互联网 发布:金山软件招聘 编辑:程序博客网 时间:2024/06/02 04:15

题目描述:


 

参考以下链表程序,设计在链表中插入若干个元素的InsertL函数和在链表中按值删除若干个元素的DeleteL函数,最后输出链表所有的结点数据,如果链表中有重复元素的话,只删除第一个。

 struct node

 {

       int data;

    node *next;

 };

 node *first = NULL;

 

 void InsertL(int n)

 {

 }

 

 void DeleteL(int m)

 {

 }

 void Display()

 {

   node *p = first;

   while(P)

   {

             cout << p->data << “ “;

        p = p->next;

   }

 }

 

 int main()

 {

int m,n;

cin >> n >> m;

InsertL(n);

DeleteL(m);

Display();

return 0;

 }


输入样例:


  

10 5

1 5 2 99 77 15 62 47 88 101

1 99 16 25 47

输出样例:


  

该值不存在

该值不存在

5 2 77 15 62 88 101

输入描述:


 

各个命令以及相关数据的输入格式如下:
第一行输入整数个数n和要删除的整数个数m
第二行输入n个整数

第三行输入m个整数

输出描述:


删除时如果待删除值不在链表中,输出“该值不存在”,然后回车,最后从链表头输出所有结点数据。

 

#include<iostream>
using namespace std;
int main()
{
 int m,n,i,j,k=0,*a,*b,*c,h=0;
 cin>>m>>n;
 a=new int[m];
 b=new int[n];
 c=new int[m];
 for(i=0;i<m;i++)
 {
  cin>>a[i];
 }
 for(j=0;j<n;j++)
 {
  cin>>b[j];
 }
 for(i=0;i<m;i++)
 {
  bool flag=0;
  for(j=0;j<n;j++)
  {
   if(a[i]==b[j])
   {
    h++;
    flag=1;
    break;
   }
  }
  if(flag==0)
  {
   c[k]=a[i];
   k++;
  }
 }
 h=n-h;
 while(h!=0)
 {
  cout<<"该值不存在"<<endl;
  h--;
 }
 for(i=0;i<k-1;i++)
 {
  cout<<c[i]<<" ";
 }
 cout<<c[i];
 return 0;
}

原创粉丝点击