设计一个尽可能高效的算法求A和B的交集,要求不破坏A、B的结点,将交集存放在单链表C中
程序员文章站
2024-02-04 11:13:58
...
设A和B是两个结点个数分别为m和n的单链表(带头结点),其中元素递增有序
LinkList *insertion(LinkList *A,LinkList *B,LinkList *C){
C=(LinkList *)malloc(sizeof(LinkList));
LinkList *p,*q,*k; p=A->next; q=B->next; k=C->next;
if(p==null) return null;
if(q==null) return null;
while(p && q){
if(p->data == q->data){
LinkList *s;
s=(LinkList *)malloc(sizeof(LinkList));
s->data=p->data;
k->next=s;
k=s;
}
else if(p->data > q->data) q=q->next;
else if(p->data < q->data) p=p->next;
}
k->next = null;
return C;
}