请教
问题一:这是创建一个单链表,并往里边输入值并打印出这个链表的数值,问题是再输入时结束不了,不知问题出在哪里了?请大家帮忙看一看。谢谢了。
#include "stdlib.h"
#include "malloc.h"
typedef struct linknode
{
int data;
struct linknode *next;
}node;
node *creat(void)
{
node *head,*p,*n;
int x,y;
y=1;
head=(node *)malloc(sizeof(node));
p=head;
while(y)
{
scanf("%d",x);
if(x!=0)
{
n=(node *)malloc(sizeof(node));
n->data=x;
p->next=n;
p=n;
}
else
y=0;
}
p->next=NULL;
return head;
}
void print(node *head)
{
node *p;
p=head;
if(head==NULL)
{
printf("the list is null!!");
}
else
{
printf("print the numbers: ");
while(p->next!=NULL)
{
printf(" %d",p->data);
p=p->next;
}
}
}
int main(void)
{ node *head;
creat();
print(head);
return 0;
}
问题二:这样可以建立空链表吗?
struct node
{
int data;
struct node *next;
};
struct node *create_list()
{
struct node *head;
head=(struct node*)malloc(sizeof(struct node));
if(head!=NULL)
{
printf("成功建立");
head->next=NULL;
}
else
{
printf("建立失败");
}
return head;
}