c语言实现链表的输入

#include<stdio.h>#include<malloc.h>#include<stdlib.h>voidmain(){typedefstructnode_typ... #include<stdio.h>
#include<malloc.h>
#include <stdlib.h>
void main()
{ typedef struct node_type
{ int d;
struct node_type*next;
}node_type;
typedef struct list_type
{ node_type*head;
node_type*tail;
int length;
}list_type;

node_type*new_node,*p;
list_type list;

list.length=0;
list.head=NULL;
list.tail=NULL;
new_node=malloc(sizeof(struct node_type));
scanf("%d",&new_node->d);
while(new_node->d>=0)
{

if(list.length<=0)
{ list.head=new_node;
list.tail=new_node;
}
else
{ new_node->next=list.tail->next;
list.tail->next=new_node;
}
list.length=list.length+1;

new_node=malloc(sizeof(struct node_type));
scanf("%d",&new_node->d);
}

p=list.head;
while(p!=NULL)
{printf("%d ",p->d);
p=p->next;}
}
输出不太对,刚学链表,求大神指点,多谢
展开
 我来答
百度网友2d08ff5
2013-12-01
知道答主
回答量:16
采纳率:0%
帮助的人:8.3万
展开全部

整体都是对的 就是少一句话

 {	   
     list.head=new_node;
     list.tail=new_node;
 }
 
 这里 
 之前之后都没有对 new_node->next 初始化为NULL;导致后面添加乱了。
追问
  
  
  { new_node->next=NULL;
  list.tail->next=new_node;
  list.tail=list.tail->next;
  }
  
  这是我后来改的,自己想了一句,借鉴了你一句,谢谢了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式