La=LaULb (单链表)

#include<stdio.h>
typedef struct LNode
{
 int data;
 struct LNode *next;
}LNode,*LinkList;
void union1(LinkList &La,LinkList &Lb)
{
 LinkList s,p,pre;
 if(!La) La=Lb;
 else
 {
  while(Lb)
  {
   s=Lb;
   Lb=Lb->next;
   p=La;
   while(p!=NULL&&p->data!=s->data)
   {
    pre=p;
    p=p->next;
   }
   if(p!=NULL) delete s;
   else
   {
    pre->next=s;
    s->next=NULL;
   }
  }
 }
}
int main()
{
 int m,n,i,a[100],b[100];
 scanf("%d",&m);
 for(i=0;i<m;i++)
  scanf("%d",&a[i]);
 LinkList p=new LNode;
 LinkList La=p;
 for(i=0;i<m;i++)
 {
  LinkList s=new LNode;
  s->data=a[i];
  p->next=s;
  p=s;
 }
 p->next=NULL;
 scanf("%d",&n);
 for(i=0;i<n;i++)
  scanf("%d",&b[i]);
 LinkList q=new LNode;
 LinkList Lb=q;
 for(i=0;i<n;i++)
 {
  LinkList s=new LNode;
  s->data=b[i];
  q->next=s;
  q=s;
 }
 q->next=NULL;
 union1(La,Lb);
 p=La->next;
 while(p)
 {
  printf("%d ",p->data);
  p=p->next;
 }
 printf("\n");
 return 0;
}


 

posted @ 2014-07-27 09:59  NYNU_ACM  阅读(182)  评论(0编辑  收藏  举报