#include <iostream>
using namespace std;
typedef struct LNode
{
int data;
struct LNode *next;
} LNode, *LinkList;
void Input(LinkList &Head)
{
Head = new LNode;
Head->next = NULL;
LinkList p, r;
r = Head;
cout << "请输入有序集合元素个数:" << endl;
int n;
cin >> n;
for (; n > 0; n--)
{
p = new LNode;
cout << "请输入元素:";
cin >> p->data;
p->next = NULL;
r->next = p;
r = p;
}
}
void MergeList(LinkList &HA, LinkList &HB)
{
LinkList pa, pb, HC, pc;
pa = HA->next;
pb = HB->next;
HC = HA;
pc = HC;
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;
delete HB;
pa = HA->next;
cout << "合并后的集合" << endl;
while (pa)
{
cout << pa->data << endl;
pa = pa->next;
}
}
int main()
{
LinkList HA, HB;
Input(HA);
cout << endl
<< endl;
Input(HB);
MergeList(HA, HB);
return 0;
}