📄 merge.cpp
字号:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define ok 1
#define error 0
#define overflow 0
typedef struct lnode
{int data;
struct lnode *next;
}lnode,*linklist;
int initlist_l(linklist &l)
{l=(linklist) malloc (sizeof(lnode));
if(!l)
exit(overflow);
l->next=NULL;
return ok;
}
int createlist_l(linklist &l,int n)
{linklist p,q;
int i;
printf("input the datas in increasing order:");
q=l;
for(i=0;i<n;i++)
{p=(linklist) malloc(sizeof (lnode));
scanf("%d",&p->data);
p->next=q->next;
q->next=p;
q=p;
}
return ok;
}
int mergelist_l(linklist &la,linklist &lb,linklist &lc)
{linklist pa,pb,pc;
pa=la->next;
pb=lb->next;
lc=pc=la;
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;
}
}
pc->next=pa?pa:pb;
free(lb);
return ok;
}
int traverselist_l(linklist l)
{linklist p;
p=l->next;
while(p)
{printf("%d ",p->data);
p=p->next;
}
return ok;
}
main()
{int n;
linklist la,lb,lc;
initlist_l(la);
initlist_l(lb);
printf("input the length of the list la:");
scanf("%d",&n);
createlist_l(la,n);
printf("input the length of the list lb:");
scanf("%d",&n);
createlist_l(lb,n);
mergelist_l(la,lb,lc);
printf("output the datas in lc:");
traverselist_l(lc);
getchar();
getchar();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -