数据结构相关代码 不懂什么功能 请行行注解一下

问题相关代码

void func07 ( Polyn & L) {
Polyn p=L->link; pre=L;
while (p!=NULL) {
if (p->exp==0) {
pre->link=p->link; free(p);
p=pre->link;
}
else {
p->coef= p->coef * p->exp;
p->exp--;
}
pre=p;
if (p!=NULL) p=p->link;
}
}

应该是一元多项式 但是没看懂是什么功能 能不能行行注解一下

应该是求导数吧
如果数据项为常数,则去掉
如果不是常数,则系数变为系数乘以指数,然后指数减去1
ax³+bx²+cx+d的导数是
3ax²+2bx+c

void func07 ( Polyn & L) {
Polyn p=L->link; pre=L;
while (p!=NULL) {
if (p->exp==0) {   //-----如果指数是0,就是常数。求导后常数要丢弃掉,下面的链表就是删除常数
pre->link=p->link; free(p);
p=pre->link;
}
else {
p->coef= p->coef * p->exp;   //---求导数后,系数和指数相乘作为新的系数
p->exp--;    //---求导数后,指数要降一阶
}
pre=p;
if (p!=NULL) p=p->link;
}
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632