首页 > 试题广场 >

已知带有头结点的两个单链表 la 和 lb 都是非递增有序序

[问答题]

已知带有头结点的两个单链表 la lb 都是非递增有序序列。编写好的算法实现将这两个链表合并为新的带有头结点的链表 lc ,使得 lc 的元素仍然是非递增有序排列的序列,如果遇到 la lb 中元素相同,则只取 la 中的元素,去掉 lb 中的元素。已知 la 的元素个数 m lb 的元素个数为 n

void Merglist_L(LinkList &La,LinkList &Lb,LinkList &Lc )

{if(m<n)

{Lc=La;

pa=La->next;pb=Lb->next;pc=Lc;

while(pa&&pb)

{if(pa->data<pb->data)

{pc->next=pb;pc=pb;pb=pb->next;}

else if(pa->data>pb->data)

{pc->next=pa;pc=pa;pa=pa->next}

else

{pc->next=pa;pa=pa->next;pb=pb->next;}

}//end while

if(pa) pc->next=pa;

else pc->next=pb;

free(Lb);

}//end if

else { Lb 出发进行比较 ………}

}//end

发表于 2017-05-02 20:22:51 回复(0)