#include <bits/stdc++.h>
using namespace std;
typedef struct lst
{
int data;
struct lst* next;
}LNode;
LNode* Init()//创建单链表
{
int x = 0;
LNode* head, * p, * q;
head = new LNode;
q = head;
cout << "建立单链表" << endl;
cin >> x;
while (x != -1) {
p = new LNode;
q->next = p;
p->data = x;
q = p;
cin >> x;
}
q->next = NULL;
return head;
}
void Merge(LNode* L0, LNode* L1, LNode* L2)
{
LNode* pa = NULL, * pb = NULL, * pc = NULL, * p = NULL;
p = L2;
pa = L0->next;
pb = L1->next;
pc = L2 = L0;
while (pa && pb)
{
if (pa->data <= pb->data)
{
pc->next = pa;
pc = pc->next;
pa = pa->next;
}
else
{
pc->next = pb;
pc = pc->next;
pb = pb->next;
}
}
pc->next = pa ? pa : pb;//长度不同时,判断谁为真就继续往下接谁
//以下为检验部分
p = L2->next;
while (p)
{
cout << p->data << " ";
p = p->next;
}
cout << endl;
}
void Sort(LNo
C/C++: 将两个单链表合并为一个单链表并排序
最新推荐文章于 2024-08-12 17:26:48 发布

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



