#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; }