将两个有序链表并为一个有序列表。
归并两个单链表算法如下:
void MergeList_L(LinkList &La, LinkList &Lb, LinkList &Lc) {
// 已知单链线性表 La 和 Lb 的元素按值非递减排列
// 归并 La 和 Lb 得到新的单链表 Lc,Lc的元素也按值非递减排列
pa = La->next; pb = Lb->next;
Lc = pc = La;
while (pa && pb) {
if (pa->data <= pb->data) {
pc->next = pa; pc = pa; pa = pa->next;
}
else { pc->next = pb; pc = pb; pb = pb->next; }
}
pc->next = pa ? pa : pb;
free(Lb);
} // MergeList_L
因篇幅问题不能全部显示,请点此查看更多更全内容