#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;
}
C语言链表并集操作
本文介绍了一种使用C语言实现的链表并集操作方法。通过定义链表结构体,创建两个链表,并利用循环和条件判断,实现两个链表的并集运算,即合并两个链表并去除重复元素。最后,程序通过读取输入数据,构建链表并输出并集后的链表元素。
553

被折叠的 条评论
为什么被折叠?



