三元多項式表示如下:
p(x,y,z) = x10y3z2 + 2x6y3z2 + 3x5y2z2 + x4y4z + 6x3y4z + 2yz + 15
然後對式子進行變形:
p(x,y,z)=((x10+2x6)y3+3x5y2)z2+((x4+6x3)y4+2y)z+15
上面的三元多項式可以看成是z的一元多項式。即p(x,y,z)=az2+bz1+cz0
其中a=((x10+2x6)y3+3x5y2)、b=((x4+6x3)y4+2y)、c=15;
然後二元多項式a(x,y)又可以看成是關於y的一元多項式;b也如此;
a(x,y)=((x10+2x6)y3+3x5y2)=cy3+dy2
其中c=x10+2x6、d=3x5、
分解到此處可以看出c、d是關於x的一元多項式;
這種巢狀結構把m元多項式層層分解;很好地表示了一元多項式。
任何乙個m元多項式可以分解出乙個主變元,隨後再分解出第二個變元等等;
接下來可以用廣義表的資料結構來表示m元多項式;
1 typedef struct資料結構28:廣義表及m元多項式:mpnode;
8struct mpnode *tp; //
相當於線性鍊錶的next,指向下乙個元素的結點
9 }* mplist;
資料結構 一元多項式的表示及相加
typedef struct float coef 係數 int expn 指數 term,elemtype 定義結構體 typedef linklist polynomial 用帶頭結點的有序鍊錶表示多項式 int cmp term a,term b 依a 的指數值 b 的指數值。分別返回 1 0...
資料結構 一元多項式的表示及相加
本文所有 均為偽碼,僅闡述演算法基本思想 資料結構 清華大學出版社 一元多項式的表示採用鏈式儲存結構來實現,基本操作和鍊錶的合併類似。以下為演算法部分 typedef structterm,elemtype 兩個型別名 term用於本adt,elemtype為linklist的資料物件名 type ...
資料結構 一元多項式的表示及相加
用單鏈表儲存多項式的結點結構如下 struct polynode 1.兩個多項式中所有指數相同的項的對應係數相加,若和不為零,則構成 和多項式 中的一項 2.所有指數不相同的項 均復抄到 和多項式 中。1.若pa exp exp,則結點pa所指的結點應是 和多項式 中的一項,將結點pa插入在結點pc...