多项式有如下表达方式
f ( x ) = ∑ i = 0 n a i x i f(x)=\displaystyle\sum_{i=0}^{n} a_ix^i f(x)=i=0∑naixi
对于多项式的存储,可以使用线性表来存储,用下标表示指数,下标对位位置存储系数;
这么便于对多项式处理,方便运算,但同时却有一些弊端例如当存储 a x 1 + b x 200 ax^1+bx^{200} ax1+bx200时用数组保存会造成大量的空间浪费,所以这时候我们需要使用链表来存储每一项
链表结点定义如下
typedef struct ListNode *NodePtr;
typedef NodePtr Polynomial;
struct ListNode {
ElementType Coef;
ElementType Expon;
NodePtr Next;
};
Coef保存系数,Expon保存幂指数;
为保证一致性,储存多项式的链表无头节点;
多项式的创建与添加很容易实现
下面来实现多项式的加法:
例如
− 5 x 2 + 3 x 4 +