下面的c语言程序部分语句不理解,求高手指点 程序如下,不理解语句 else tail=tail->next; tail-
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/08/09 03:37:35
下面的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),不过这样的话,后面要有改动 这句属于误加上去的,程序上没有
我觉得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),不过这样的话,后面要有改动 这句属于误加上去的,程序上没有
我也认为这个程序有问题
应该是
else
{ tail->next=p;
tail=tail->next;
}
再问: 我也觉的可以改,但是一改就不能运行了,不改的话还能运行
再答: 我试了,能运行呀
再问: 能运行,但是输入两个数时,输出结果时就会出故障
再答: 很正行呀,我的运行结果如下 input data. 1 2 e 1 2
应该是
else
{ tail->next=p;
tail=tail->next;
}
再问: 我也觉的可以改,但是一改就不能运行了,不改的话还能运行
再答: 我试了,能运行呀
再问: 能运行,但是输入两个数时,输出结果时就会出故障
再答: 很正行呀,我的运行结果如下 input data. 1 2 e 1 2
下面的c语言程序部分语句不理解,求高手指点 程序如下,不理解语句 else tail=tail->next; tail-
C语言统计数字程序 部分语句求解释
C语言 while语句的一段程序
求一段循环语句的C语言程序
C++语法求解释!j=q[head++];和q[++tail]=i;是什么用法?能拆成几个普通点的语句么?帮忙!
tail的中文
tail的意思
广义表A=(a,b,(c,d),(e,(f,g))),则Head(Tail(Head(Tail(Tail(A)))))=
(2)Unix/Liniux 系统中有命令Tail,用于显示指定文件末尾的若干行.请编写程序Tail,
广义表A=(a,b,(c,d),(e,(f,g)))则式子head(tail(tail(A)))的值为
C语言,分别用if 语句和switch语句编写程序求分段函数的值
已知广义表C=(a(b,c),d),则:tail(head(tail(C)))=