又是一个死活弄不出来的程序 又死活没看出哪错了。 初学数据的妹子真的伤不起啊
#include<stdio.h>#include<malloc.h>
typedef struct Lnode{
int data;
struct Lnode *next;
}Lnode,*LK;
int init(LK&l,int n){
int i;
LK p,q;
l=(LK)malloc(sizeof(LK));
l->next=0;
q=l;
for(i=0;i<n;i++){
p=(LK)malloc(sizeof(LK));
scanf("%d",&p->data);
p->next=0;
q->next=p;
q=p;
}
return 1;
}
int hb(LK &LA,LK &LB,LK &LC)
{LK pa,pb,pc;
pa=LA->next;pb=LB->next;
pc=LC=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 1;
}
main(){
LK LA,LB,p,LC;
int n,m,i;
printf("请输入LA链表元素的个数:");
scanf("%d",&n);
init(LA,n);
p=LA->next;
printf("\n创建LA的链表为:\n");
for(i=n;i>0;i--){
printf("%d ",p->data);
p=p->next;
}
printf("\n请输入LB链表元素的个数:");
scanf("%d",&m);
init(LB,m);
p=LB->next;
printf("\n创建LB的链表为:");
for(i=m;i>m;i--){
printf("%d ",p->data);
p=p->next;
}
hb(LA,LB,LC);
p=LC->next;
printf("\n合并后LC的链表为:");
for(i=n+m;i>0;i--){printf("%d ",p->data);p=p->next;}
}