c语言单链表错误

#include<stdio.h>#include<malloc.h>typedefstructnode{intdata;structnode*next;}Lnode,*... #include<stdio.h>
#include<malloc.h>
typedef struct node
{
int data;
struct node* next;
}Lnode,*Linklist;
Linklist create(Linklist la) //创建
{
int x;
la=(Linklist)malloc(sizeof(Lnode));
la->next=NULL;
scanf("%d",&x);
while(x!=99)
{
Lnode *s;
s=(Linklist)malloc(sizeof(Lnode));
s->data=x;
s->next=la->next;
s=la->next;
scanf("%d",&x);
}
return la;
}
void show(Linklist la)
{
la=(Linklist)malloc(sizeof(Lnode));
la=la->next;
while(la)
{
printf("%d",la->data);
}
}
main()
{
Lnode *p;
p=(Linklist)malloc(sizeof(Lnode));

p=create(p);
show(p);
}
展开
 我来答
matlab2000
2013-09-19 · TA获得超过2323个赞
知道大有可为答主
回答量:1678
采纳率:100%
帮助的人:1090万
展开全部
插入节点的时候有一句话正好赋值反了。这种节点插入一般画图,看着图写代码比较安全。
下面修改过的可以正确运行。

C:\debug>test
1
10
8
99
8 10 1

#include<stdio.h>
#include<malloc.h>
typedef struct node
{
int data;
struct node* next;
}Lnode,*Linklist;

Linklist create(void) //创建
{
int x;
Linklist la=(Linklist)malloc(sizeof(Lnode));
la->next=NULL;
scanf("%d",&x);
while(x!=99)
{
Lnode *s;
s=(Linklist)malloc(sizeof(Lnode));
s->data=x;
s->next=la->next;
//s=la->next;
la->next=s;
scanf("%d",&x);
}
return la;
}
void show(Linklist la)
{
//la=(Linklist)malloc(sizeof(Lnode));
Linklist p=la->next;
while(p)
{
printf("%d\t",p->data);
p=p->next;
}
}
main()
{
Lnode *p=NULL;
//p=(Linklist)malloc(sizeof(Lnode));

p=create();
show(p);
}
追问
回答的不错,看着明白
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式