#include<stdio.h>
#include<stdlib.h>
#define NULL 0
typedef struct LNode
{
struct LNode *next;
int data;
}LNode,*list;
void createList(list &l,int n)
{
list q,p;
l=(list)malloc(sizeof(LNode));
p=l;
for(int i=0;i<n;i++)
{
q=(list)malloc(sizeof(LNode));
scanf("%d",&q->data);
p->next=q;
p=q;
}
p->next=NULL;
}
void merge(list &A,list &B,list &C)
{
list p,q,r;
p=A->next;
q=B->next;
C=A;
C->next=NULL;
free(B);
while(p&&q)
{
if(p->data<=q->data)
{
r=p;p=p->next;
r->next=C->next;
C->next=r;
}
else
{
r=q;q=q->next;
r->next=C->next;
C->next=r;
}
}
while(p)
{
r=p;p=p->next;
r->next=C->next;
C->next=r;
}
while(q)
{
r=q;q=q->next;
r->next=C->next;
C->next=r;
}
}
void printList(list l)
{
list p;
p=l;
while(p->next!=NULL)
{
p=p->next;
printf("%d ",p->data);
}
printf("\n");
}
void main()
{
list A,B,C;
int n;
scanf("%d",&n);
createList(A,n);
createList(B,n);
merge(A,B,C);
printList(C);
}
升序合并为降序
最新推荐文章于 2022-03-15 21:12:27 发布