下面的c语言程序部分语句不理解,求高手指点 程序如下,不理解语句 else tail=tail->next; tail->next=p;我觉得tail指向尾节点,tail->next应给为NULL,那样tail也为NULL,tail->next=p,就没意义了啊,求高手解释一
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/29 09:55:01
![下面的c语言程序部分语句不理解,求高手指点 程序如下,不理解语句 else tail=tail->next; tail->next=p;我觉得tail指向尾节点,tail->next应给为NULL,那样tail也为NULL,tail->next=p,就没意义了啊,求高手解释一](/uploads/image/z/14480787-3-7.jpg?t=%E4%B8%8B%E9%9D%A2%E7%9A%84c%E8%AF%AD%E8%A8%80%E7%A8%8B%E5%BA%8F%E9%83%A8%E5%88%86%E8%AF%AD%E5%8F%A5%E4%B8%8D%E7%90%86%E8%A7%A3%2C%E6%B1%82%E9%AB%98%E6%89%8B%E6%8C%87%E7%82%B9+%E7%A8%8B%E5%BA%8F%E5%A6%82%E4%B8%8B%2C%E4%B8%8D%E7%90%86%E8%A7%A3%E8%AF%AD%E5%8F%A5+else+tail%3Dtail-%3Enext%3B+tail-%3Enext%3Dp%3B%E6%88%91%E8%A7%89%E5%BE%97tail%E6%8C%87%E5%90%91%E5%B0%BE%E8%8A%82%E7%82%B9%2Ctail-%3Enext%E5%BA%94%E7%BB%99%E4%B8%BANULL%2C%E9%82%A3%E6%A0%B7tail%E4%B9%9F%E4%B8%BANULL%2Ctail-%3Enext%3Dp%2C%E5%B0%B1%E6%B2%A1%E6%84%8F%E4%B9%89%E4%BA%86%E5%95%8A%2C%E6%B1%82%E9%AB%98%E6%89%8B%E8%A7%A3%E9%87%8A%E4%B8%80)
下面的c语言程序部分语句不理解,求高手指点 程序如下,不理解语句 else tail=tail->next; tail->next=p;我觉得tail指向尾节点,tail->next应给为NULL,那样tail也为NULL,tail->next=p,就没意义了啊,求高手解释一
下面的c语言程序部分语句不理解,求高手指点 程序如下,不理解语句 else tail=tail->next; tail->next=p;
我觉得tail指向尾节点,tail->next应给为NULL,那样tail也为NULL,tail->next=p,就没意义了啊,求高手解释一下
#include
#include
struct chain
{
int value;
struct chain *next;
};
struct chain *create()
{
struct chain *head,*tail,*p;
int x;
head=tail=NULL;
printf("input data.\n");
while(scanf("%d",&x)==1)//只是对创立节点结束的一个标记,可以选择别的方式,如 while(p1->num!=0),不过这样的话,后面要有改动
{
p=(struct chain*)malloc(sizeof(struct chain));
p->value=x;
p->next=NULL;
if(head==NULL)
head=tail=p;
else
tail=tail->next;
tail->next=p;
}
return head;
};
void main()
{
struct chain *p,*q;
q=create();
while(q)
{printf("%d\n",q->value);
p=q->next;
free(q);
q=p;
}
}
)//只是对创立节点结束的一个标记,可以选择别的方式,如 while(p1->num!=0),不过这样的话,后面要有改动 这句属于误加上去的,程序上没有
下面的c语言程序部分语句不理解,求高手指点 程序如下,不理解语句 else tail=tail->next; tail->next=p;我觉得tail指向尾节点,tail->next应给为NULL,那样tail也为NULL,tail->next=p,就没意义了啊,求高手解释一
我也认为这个程序有问题
应该是
else
{ tail->next=p;
tail=tail->next;
}