欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

设计一个尽可能高效的算法求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;
}