数据结构用链式线性表实现一元多项式求导
时间: 2023-10-22 09:04:42 浏览: 66
链式线性表实现一元多项式的结构体可以定义如下:
```
typedef struct PolyNode *Polynomial;
struct PolyNode {
int coef; // 系数
int expon; // 指数
Polynomial next;
};
```
其中,`coef`表示系数,`expon`表示指数,`next`表示下一个节点的指针。
求导的过程可以通过遍历链表,对每一项进行求导,然后构造新的链表来实现。具体实现可以参考下面的代码:
```
Polynomial Derivative(Polynomial P) {
Polynomial dP, pre, cur;
dP = (Polynomial)malloc(sizeof(struct PolyNode));
dP->next = NULL;
pre = dP;
cur = P->next;
while (cur) {
if (cur->expon != 0) {
Polynomial tmp = (Polynomial)malloc(sizeof(struct PolyNode));
tmp->coef = cur->coef * cur->expon;
tmp->expon = cur->expon - 1;
tmp->next = NULL;
pre->next = tmp;
pre = tmp;
}
cur = cur->next;
}
return dP;
}
```
该函数返回的是求导后的链表。