void MergeList(LinkList &LA,LinkList &LB) { //求基于链表的两个递增有序序列的合并 /**************begin************/ /**************end************/ }
时间: 2023-11-10 20:04:56 浏览: 136
合并两个排序的链表.md
这是一个链表合并的函数,其中LA和LB分别代表两个递增有序序列的头指针。下面是该函数的实现:
void MergeList(LinkList &LA, LinkList &LB) {
LinkList p = LA->next, q = LB->next, r = LA;
while (p && q) {
if (p->data <= q->data) {
r->next = p;
p = p->next;
} else {
r->next = q;
q = q->next;
}
r = r->next;
}
r->next = p ? p : q;
free(LB);
}
该函数的实现思路是:定义三个指针p、q、r,其中p和q分别指向LA和LB的第一个元素,r指向LA的头结点。然后比较p和q所指向的元素大小,将较小的元素插入到r所指向的链表中,并将r指向新插入的元素。最后将剩余的元素直接插入到r所指向的链表中即可。
阅读全文