#include<stdio.h>
#include<stdlib.h>
typedef struct LNode{
int data;
struct LNode *next;
}LNode,*LinkList;
//********************************************
void output(LinkList L)
{
LinkList p;
p=L;
p=p->next;
while (p)
{
printf("%-4d",p->data);
p=p->next;
}
printf("\n");
}
//********************************************
void createlist(LinkList &h)
{
int i,n;
LinkList q,l,p;
l=(LNode*) malloc (sizeof(LNode));
q=l;
h=l;
l->next=NULL;
printf("Input the number of LNode:\n");
scanf("%d",&n);
for(i=n;i>0;i--)
{
p=(LNode*) malloc (sizeof(LNode));
scanf("%d",&(p->data));
q->next=p;
q=p;
q->next=NULL;
}
}
void Union (LinkList &a,LinkList &b)
{
LinkList pa,pb,pc;
pa=a->next;
pb=b->next;
pc=a;
while (pa&&pb)
{
if(pa->data<pb->data)
{
pc->next=pa;pc=pa;pa=pa->next;
}
else{
if(pa->data>pb->data)
{
pc->next=pb;pc=pb;pb=pb->next;
}
else pb=pb->next;
}
}
pc->next=pa?pa:pb;
free(b);
}
void main ()
{
LinkList L1,L2;
createlist(L1);
createlist(L2);
Union(L1,L2);
output(L1);
}