三元多项式表示如下:
P(x,y,z) = xyz + 2xyz + 3xyz + xyz + 6xyz + 2yz + 15
然后对式子进行变形:
P(x,y,z)=((x+2x)y+3xy)z+((x+6x)y+2y)z+15
上面的三元多项式可以看成是z的一元多项式。即P(x,y,z)=Az+Bz+Cz
其中A=((x+2x)y+3xy)、B=((x+6x)y+2y)、C=15;
然后二元多项式A(x,y)又可以看成是关于y的一元多项式;B也如此;
A(x,y)=((x+2x)y+3xy)=Cy+Dy
其中C=x+2x、D=3x、
分解到此处可以看出C、D是关于x的一元多项式;
这种嵌套结构把m元多项式层层分解;很好地表示了一元多项式。
任何一个m元多项式可以分解出一个主变元,随后再分解出第二个变元等等;
接下来可以用广义表的数据结构来表示m元多项式;
typedef struct MPNode{
ElemTag tag; //区分原子节点or
int exp; //指数域
union{
float coef; //指向系数域
struct MPNode *hp; //表节点的表头指针
};
struct MPNode *tp; //相当于线性链表的next,指向下一个元素的结点
}* MPList;
相关链接:
数据结构28:广义表及m元多项式:https://www.cnblogs.com/ciyeer/p/9040516.html