#define ElemType int
typedef struct LNode{
ElemType data;
struct LNode * next;
}LNode, * Linklist;
#define NULL 0
#include
#include
void creat_L (Linklist &L)
{ElemType n,i;
Linklist Last,p;
L=(Linklist)malloc(sizeof(LNode));
Last=L;
printf("请输入表长:");
scanf("%d",&n);
printf("\n请输入元素:");
for(i=1;i<=n;i++)
{
p=(Linklist)malloc(sizeof(LNode));
scanf("%d",&p->data);
Last->next=p;
Last=p;
}
Last->next=NULL;
}
void merge_l(Linklist La,Linklist Lb,Linklist &Lc)
{Linklist pc,pb,pa;
Lc=pc=La; pa=La->next; pb=Lb->next;
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;}
if(pa) pc->next=pa;
else pc->next=pb;
free(Lb);
}
void print(Linklist L)
{Linklist p;
for(p=L->next;p;p=p->next)
printf("%d ",p->data);
}
void main()
{Linklist La,Lb,Lc;
creat_L (La);
printf("单链表La:\n");
print(La);
creat_L(Lb);
printf("\n");
printf("\n单链表Lb:\n");
print(Lb);
merge_l(La,Lb,Lc);
printf("\n单链表Lc:");
print(Lc);
}