📄 combine.cpp
字号:
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define OVERFLOW -2
#define ERROR -1
#define OK 1
typedef struct LNode
{
int data;
struct LNode *next;
}LNode,*LinkList;
int CreateLink_L(LinkList &L,int n)
{
LinkList p,q;
int i;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
q=L;
for(i=1;i<=n;i++)
{
p=(LinkList)malloc(sizeof(LNode));
scanf("%d",&p->data);
q->next=p;
q=p;
}
q->next=NULL;
return OK;
}
int LoadLink_L(LinkList &L)
{
LinkList p=L->next;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
return OK;
}
int main()
{
int m,n,i,j;
LinkList A,B,C,p,q,r,rp,rq;
scanf("%d",&m);
CreateLink_L(A,m);
scanf("%d",&n);
CreateLink_L(B,n);
C=(LinkList)malloc(sizeof(LNode));
C->next=NULL;
p=A->next;
q=B->next;
r=C;
i=0;
j=0;
while(p!=NULL || q!=NULL)
{
if(p!=NULL && (j>=n || p->data<q->data))
{
rp=(LinkList)malloc(sizeof(LNode));
rp->data=p->data;
rp->next=r->next;
r->next=rp;
p=p->next;
r=r->next;
i++;
}
if(q!=NULL && (i>=m || p->data>=q->data))
{
rq=(LinkList)malloc(sizeof(LNode));
rq->data=q->data;
rq->next=r->next;
r->next=rq;
q=q->next;
r=r->next;
j++;
}
}
r->next=NULL;
printf("List A:");
LoadLink_L(A);
printf("List B:");
LoadLink_L(B);
printf("List C:");
LoadLink_L(C);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -