用連結串列實現兩個集合求並集
#include<stdlib.h>
#include<time.h>
typedef struct node{
int data;
struct node *next;
} LinkList;
LinkList* initialList(LinkList *linkList){
linkList = NULL;
LinkList *p;
int i = 0;
srand(time(NULL));
while(i < 10){
p = (LinkList*)malloc(sizeof(LinkList));
p ->data = rand() % 100;
printf("%d ", p ->data);
p ->next = linkList;
linkList = p;
i ++;
}
printf("\n");
return linkList;
}
LinkList* jiaoji(LinkList *La, LinkList *Lb){
LinkList *p, *q, *t;
LinkList *tmpLinkList = NULL;
//Lc = NULL;
for(p = La; p != NULL; p = p ->next){
for(q = Lb; q != NULL; q = q ->next){
if(p ->data == q ->data){
t = (LinkList*)malloc(sizeof(LinkList));
t ->data = q ->data;
t ->next = tmpLinkList;
tmpLinkList = t;
break;
}
}
}
return tmpLinkList;
}
int main(){
LinkList *La, *Lb, *Lc;
La = initialList(La);
Lb = initialList(Lb);
Lc = jiaoji(La, Lb);
printf("intersection is: ");
while(Lc){
printf("%d ", Lc ->data);
Lc = Lc ->next;
}
return 0;
}