Advertisement

设计一个高效的算法来计算A与B的交集,并确保不修改A、B中的节点并将结果存入单链表C中

阅读量:

假设存在两个单链表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;
    }
    
    

全部评论 (0)

还没有任何评论哟~