链表 一元多项式求导问题 C语言我个人认为应该是一空应该:是指数不为零二空,当前项的系数与指数相乘三,当前项指数-1四,判断指数是否为0Tail作用是啥没看懂,然后我从头验证一遍总感觉
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/22 04:07:15
链表 一元多项式求导问题 C语言我个人认为应该是一空应该:是指数不为零二空,当前项的系数与指数相乘三,当前项指数-1四,判断指数是否为0Tail作用是啥没看懂,然后我从头验证一遍总感觉
链表 一元多项式求导问题 C语言
我个人认为应该是
一空应该:是指数不为零
二空,当前项的系数与指数相乘
三,当前项指数-1
四,判断指数是否为0
Tail作用是啥没看懂,
然后我从头验证一遍总感觉有问题.
来个大神指导下.
链表 一元多项式求导问题 C语言我个人认为应该是一空应该:是指数不为零二空,当前项的系数与指数相乘三,当前项指数-1四,判断指数是否为0Tail作用是啥没看懂,然后我从头验证一遍总感觉
(1)Pt1->expn!=0
(2)Pt1->coef*Pt1->expn
(3)Pt1->expn-1
(4)P2==NULL
(5)Tail=Pt2 或许应该为 (Tail=Pt2)->next=Null
前三个分析不错
(4)的if.else.语句是给当前计算完成的Pt2找“组织”的
第一次运行的时候P2==Null,这个接点是首节点,Pt2要赋值给P2,终成为函数的返回值
之后再运行判断,P2都不为Null,这时候应该将节点接于之前的节点后面Tail->next=Pt2
可见Tail用来暂时存放上一个计算结束的节点
所以(5)就是Tail=Pt2,在循环的最后,将当先节点指针赋给Tail
因为紧接着循环就结束了,Pt2会重新赋值为新空间的地址,要先用Tail保存起它
怎么说这个程序还是不太健壮
如果空格能填两句的话,(5)还应该填一句Pt2->next=Null,
或者合写为 (Tail=Pt2)->next=Null
那样最后一个节点的next为空,代表链表结束
好像还有点问题就是,如果原来的多项式就剩一个常数项
那么调用这个函数,返回空指针,实际应该返回一个单节点 系数为0,指数为0的链表
不过填空就只能做到上边的结果了