用c语言尾插法建立带头结点的单链表
小弟我才学数据结构,今天有个程序看得不是很明白,请个位大虾给讲讲/******************************//*尾插法建立带头结点的单链表*//***...
小弟我才学数据结构,今天有个程序看得不是很明白,请个位大虾给讲讲
/******************************/
/* 尾插法建立带头结点的单链表 */
/******************************/
node* Creat_Node()
{
node *head,*pre,*p;
int x;
head=(node*)malloc(sizeof(node));//head建立一个结点
head->next=NULL;//head的next指向一个空值
pre=head;//把head的值附给指针变量pre
printf("输入各结点的值,以0结束:");
while(EOF!=(scanf("%d",&x))&&x!=0)//输入第一个结点值。问题1:EOF!=(scanf("%d",&x)是什么意思?把scanf("%d",&x)写在while语句的上面为什么不行?
{
p=(node*)malloc(sizeof(node));//p指针开辟一个新的结点
p->info=x;//把x的值附给p新开辟的结点
p->next=pre->next;//问题2:这条语句我很困惑,pre->next是指向第儿个结点的值的,而p->next是指向新开辟结点的下一个结点啊。
pre->next=p;
pre=pre->next;
}
return head;
}
注释是我自己加的,程序我运行了没有问题,请各位帮帮忙,帮我回答一下~!先谢谢了 展开
/******************************/
/* 尾插法建立带头结点的单链表 */
/******************************/
node* Creat_Node()
{
node *head,*pre,*p;
int x;
head=(node*)malloc(sizeof(node));//head建立一个结点
head->next=NULL;//head的next指向一个空值
pre=head;//把head的值附给指针变量pre
printf("输入各结点的值,以0结束:");
while(EOF!=(scanf("%d",&x))&&x!=0)//输入第一个结点值。问题1:EOF!=(scanf("%d",&x)是什么意思?把scanf("%d",&x)写在while语句的上面为什么不行?
{
p=(node*)malloc(sizeof(node));//p指针开辟一个新的结点
p->info=x;//把x的值附给p新开辟的结点
p->next=pre->next;//问题2:这条语句我很困惑,pre->next是指向第儿个结点的值的,而p->next是指向新开辟结点的下一个结点啊。
pre->next=p;
pre=pre->next;
}
return head;
}
注释是我自己加的,程序我运行了没有问题,请各位帮帮忙,帮我回答一下~!先谢谢了 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询