資料結構 一元多項式的表示及相加

2021-09-29 10:37:49 字數 1179 閱讀 6815

用單鏈表儲存多項式的結點結構如下:

struct polynode

1.兩個多項式中所有指數相同的項的對應係數相加, 

若和不為零,則構成「和多項式」中的一項;

2.所有指數不相同的項

均復抄到「和多項式」中。

1.若pa-

>exp>exp,

則結點pa所指的結點應是「和多項式」中的一項,將結點pa插入在結點pc之後,令指標pa、pc後移;

2.若pa-

>exp>qb-

>exp,

則結點qb所指的結點應是「和多項式」中的一項,將結點pb插入在結點pc之後,pb 、pc後移;

3.若pa-

>exp=qb-

>exp,

則將兩個結點中的係數相加, 釋放qb結點;

3.1當和不為零時修改結點pa的係數域, pa、pc後移;

3.2若和為零,釋放pa,pa後移。

1.設定四個工作指標,pa, pb, pc, p,並對其進行初始化

2.當 pa!=

null 並且pb!=

null時,重複做以下工作

2.1if(pa.exp2.2if(pa.exp>pb.exp),將pb加入到c中,之後移動pb、pc;

2.3if

(pa.exp==pb.exp)

,pa、pb的係數相加,刪除pb,pb後移

2.3.1如果和為0,刪除pa, pa後移

2.3.2否則,將和寫入到pa中,將pa加入到c中,之後,pa、pc後移;

3.如pa!=

null

,將pa鏈入c中,否則將pb鏈入c中;

void

add(linklist

&a, linklist b)

//相加為零, 該項不要

else

}else

if(a.exp>b.exp)

else}if

(pa)

pc->next=pa;

else

pc->next=pb;

對結果表示式的構造:

從空表開始,依次將a或b中結點加入到c中,完成c表的構造(尾插法構造了新的單鏈表)

資料結構 一元多項式的表示及相加

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 ...

一元多項式的表示及相加

符號多項式的操作,已經成為表處理的典型用例。我們對多項式採用順序儲存結構,可以只儲存每項係數,指數隱含在係數的序號裡。在這種情況下,如果多項式的次數很高且變化很大,那麼便很難來確定順序儲存的最大長度,另外對記憶體空間也極為浪費。一般情況下,對於那些多項式的次數很高,但項數不多的多項式我們可以將一元n...