原题:设计以单链表存储的两个集合求交集的算法,即设la,lb是两个带头结点的单链表,分别表示两个集合A和B,求它们的交集。
方法1:用单链表lc表示集合C,分别将集合la中元素取出,再在lb中查找,如果lb中出现,则将其插入到lc中。
void interaction(LinkList la,LinkList lb,LinkList &lc)
{
LinkList pa,pb,pc;lc=new LNode;pc=lc;pa=la->next;
while(pa)
{
pb=pb->next;
while(pb&&pb->data!=pa->data)
pb=pb->next;
if(pb)
{
pc->next=new LNode;
pc=pc->next;
pc->data=pa->data;
}
pa=pa->next;
}
pc-next=NULL;
}
方法2:也可先对la和lb进行排序,再依次比较其中的元素,将相同的元素插入到lc中。
void interaction(LinkList la,LinkList lb,LinkLis