#include<stdio.h>
#include<stdlib.h>
typedef struct LNode{
int Element;
struct LNode* next;
}LNode,*LinkList;
LinkList Create(LinkList &L,int m)
{
int i;
LNode* r,*s;
L=(LinkList)malloc(sizeof(LNode));
scanf("%d",&L->Element);
L->next=NULL;
r=L;
for(i=0;i<m-1;i++)
{
s=(LinkList)malloc(sizeof(LNode));
scanf("%d",&s->Element);
r->next=s;
r=s;
}
r->next=NULL;
return L;
}
LinkList Merge(LinkList &L1,LinkList &L2)
{
LNode *L,*r1,*r2,*p;
r1=L1,r2=L2;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
p=L;
while(r1&&r2){
if(r1->Element<=r2->Element)
{
p->next=r1;
p->Element=r1->Element;
r1=r1->next;
p=p->next;
}
else{
p->next=r2;
p->Element=r2->Element;
r2=r2->next;
p=p->next;
}
}
p->next=NULL;
while(r1!=NULL)
{
p->next=r1;
p->Element=r1->Element;
r1=r1->next;
p=p->next;
}
while(r2!=NULL)
{
p->next=r2;
p->Element=r2->Element;
r2=r2->next;
p=p->next;
}
p=NULL;
return L;
}
void print(LinkList L)
{
LNode* p;
p=(LinkList)malloc(sizeof(LNode));
for(p=L;p->next!=NULL;p=p->next)
{
printf("%d ",p->Element);
}
}
int main()
{
LinkList L1,L2,L;
int m,n;
scanf("%d",&m);
Create(L1,m);
scanf("%d",&n);
Create(L2,n);
L=Merge(L1,L2);
print(L);
system("pause");
return 0;
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交