要求:
已知集合A=(7,5,4,3),集合B=(2,6,3),求A和B的并集,要求用链表实现。
参考代码:
#include <stdio.h>
struct node{
int data;
struct node *next;
};
struct node* init(struct node* linkList,int arr1[],int count){
linkList = NULL;
struct node *p;
int i=0;
while(i<count){
p = (struct node*)malloc(sizeof(struct node));
p ->data = arr1[i];
p ->next = linkList;
linkList = p;
i++;
}
return linkList;
}
struct node* returnResult(struct node* linklist1,struct node* linklist2){
struct node *a;
struct node *b;
struct node *p;
struct node *resultLinkList=linklist2;
for(a=linklist1;a!=NULL;a=a->next){
int sign=0;
for(b=linklist2;b!=NULL;b=b->next){
if(a->data == b->data){
sign=1;
break;
}
}
if(sign==0){
p = (struct node*)malloc(sizeof(struct node));
p->data=a->data;
p->next=resultLinkList;
resultLinkList=p;
}
}
return resultLinkList;
}
int main () {
struct node *a,*b,*result;
int arr1[]={7,5,4,3};
int arr2[]={2,6,3};
a=init(a,arr1,4);
b=init(b,arr2,3);
result=returnResult(a,b);
printf("两个集合的并集为:{");
for(result; result != NULL; result = result ->next){
printf("%d,",result->data);
}
printf("}");
system("pause");
return 0;
}