代碼可以運行,但輸入完一條鏈表的值時,按回車無反應,想知道哪兒出錯以及如何修改,代碼如下
#include<stdlib.h>
#include <stdio.h>
typedef int Datatype;
typedef struct Node
{ Datatype data;
struct Node *next;
}Node,*LinkList;
//創建單鏈表
LinkList creat()
{ LinkList L;
Node *p,*r;
L=(LinkList)malloc(sizeof(Node));
L->next =NULL;
r=L;
int x;
scanf("%d",&x);
while(x!='\n')
{p=(Node*)malloc(sizeof(Node));
p->data =x;
r->next=p;
r=p;
scanf("%d",&x);
}
r->next =NULL;
return L;
}
//合并單鏈表
LinkList comber(LinkList La,LinkList Lb)
{ LinkList Lc;
Node *pa,*pb,*r;
Lc=La;
pa=La->next;
pb=Lb->next;
Lc->next=NULL;
r=Lc;
while(pa&&pb)
{ if(pa->data<=pb->data)
{r->next=pa;r=pa;pa=pa->next;}
else
{r->next=pb;r=pb;pb=pb->next;}
}
if(pa) r->next=pa;
else r->next=pb;
free(Lb);
return Lc;
}
//輸入鏈表
void printL(LinkList L)
{ Node *r;
r=L;
r=r->next;
while(r->next!=NULL)
{printf("%d ",r->data);
r=r->next;
}
printf("\n");
}
//主函式
void main()
{ printf("請輸入第一條鏈表:");
LinkList A=creat();
printf("請輸入第二條鏈表:");
LinkList B=creat();
LinkList C=comber(A,B);
printL(C);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/113707.html
標籤:數據結構與算法
下一篇:在自學時遇到了一個問題,關于Goland里run kind設定為package時候顯示Package is not specified
