C语言数据结构,各位大侠,小弟的程序初始化了链表,并输出,但是运行时却无法正常输出,谢谢大家了

2025-03-03 07:52:33
推荐回答(3个)
回答1:

if(head==NULL)
{
head=p; //这里赋值颠倒了,作用是得到链表头
trail=p; //这里应该是将当前创建的结构体暂时放到trail中,备用
}
else
trail->next=p; //这里倒是对的,作用是将前面建的结构体的*next指针指向当前新建的结构体,*p指针指向的总是当前最新的结构体
trail=p; //同样保存当前结构体,备用
}
注意:
最后一个结构体的*next还要赋值NULL,否则输出没底了

回答2:

粗略浏览了一下,大概下面错了
if(head==NULL)
{
p=head; //赋值应该改为head = p;
trail=head;
}

回答3:

由于链表中没有其他节点就把头结点的next置为空,这一点如果不明白的话去看链表那一章,有介绍!!!

之后从后往前建立链表!!刚开始是L->next =NULL
要注意p是每次新建的节点,这样从后往前以此建立链表,只要明白p是每次新建的节点,和从后往前建立,就会明白的!!给你花了张图!!