人类对于多项式相加的思维是这样的:
P 1 = 3 X 5 + 4 X 4 − X 3 + 2 X − 1 P1 = 3X^5+4X^4-X^3\quad\quad\quad +2X-1 P1=3X5+4X4−X3+2X−1
P 2 = 2 X 4 + X 3 − 7 X 2 + X P2 = \quad\quad\quad2X^4 +X^3-7X^2+X P2=2X4+X3−7X2+X
-----------------------------------------------------------------
P = 3 X 5 + 6 X 4 − 7 X 2 + 3 X − 1 P = 3X^5 + 6X^4 \quad\quad\quad-7X^2+3X-1 P=3X5+6X4−7X2+3X−1
那么计算机中多项式相加如何实现?
采用不带头结点的单向链表,按照指针递减的顺序排列各项
struct PolyNode{
int coef; //系数
int expon; //指数
struct PolyNode *link; //指向下一个节点的指针
};
typedef struct PolyNode *Polynomial