專案6 多項式求和

2021-07-05 10:22:05 字數 2250 閱讀 2484

/*  

* 檔名稱:main.cpp,

* 完成日期:2023年9月25日  

* 版本號:vc++6.0  

*  * 問題描述:用單鏈表儲存一元多項式,並實現兩個多項式的加法。

* 輸入描述:無  

* 程式輸出:結果   */

**:

#include #include #define max 20          //多項式最多項數

typedef struct //定義存放多項式的陣列型別

polyarray;

typedef struct pnode //定義單鏈表結點型別,儲存多項式中的一項,鍊錶構成多項式

polynode;

void disppoly(polynode *l) //輸出多項式

printf("\n");

}void destroylist(polynode *&l) //銷毀單鏈表

free(p);

}void createlistr(polynode *&l, polyarray a, int n) //尾插法建表

r->next=null; //終端結點next域置為null

}void sort(polynode *&head) //按exp域遞減排序

}}void add(polynode *ha,polynode *hb,polynode *&hc) //求兩有序集合的並,完成加法

else if (pa->expexp)

else //pa->exp=pb->exp

pa=pa->next;

pb=pb->next;}}

if (pb!=null) pa=pb; //複製餘下的結點

while (pa!=null)

tc->next=null;

}int main()

,,,};

polyarray b= ,,,,};

createlistr(ha,a,4);

createlistr(hb,b,5);

printf("原多項式a: ");

disppoly(ha);

printf("原多項式b: ");

disppoly(hb);

sort(ha);

sort(hb);

printf("有序多項式a: ");

disppoly(ha);

printf("有序多項式b: ");

disppoly(hb);

add(ha,hb,hc);

printf("多項式相加: ");

disppoly(hc);

destroylist(ha);

destroylist(hb);

destroylist(hc);

return 0;

}

執行結果:

多項式的通式是pn

(x)=

anxn

+an−

1xn−

1+..

.+a1

x+a0

。n次多項式共有n+1項。直觀地,可以定義乙個陣列來儲存這n+1個係數。以多項式p(

x)=−

3.4x10−

9.6x8+

7.2x2+

x 為例,儲存這個多項式的陣列如下圖:

可以看出,這種方案適合對某些多項式的處理。但是,在處理一些次數高但項數少的多項式時,存在浪費空間的現象,會有很多閒置的0。

可以使用如下定義的單鏈表結構儲存多項式:鍊錶中的每乙個結點是多項式中的一項,結點的資料域包括指數和係數兩部分,由指標域連線起多項式中的各項。

typedef struct pnode //定義單鏈表結點型別,儲存多項式中的一項,鍊錶構成多項式 polynode;

用於表示多項式的鍊錶將如下圖所示,在建立多項式的鍊錶時,已經令結點按指數由大到小的順序排列。

學習總結:

專案6 多項式求和

include include define max 20 多項式最多項數 typedef struct 定義存放多項式的陣列型別 polyarray typedef struct pnode 定義單鏈表結點型別,儲存多項式中的一項,鍊錶構成多項式 polynode void disppoly po...

多項式求和

多項式的描述如下 1 1 2 1 3 1 4 1 5 1 6 現在請你求出該多項式的前n項的和。輸入資料由2行組成,首先是乙個正整數m m 100 表示測試例項的個數,第二行包含m個正整數,對於每乙個整數 不妨設為n,n 1000 求該多項式的前n項的和。對於每個測試例項n,要求輸出多項式前n項的和...

多項式求和

time limit 1000ms memory limit 65536k 有疑問?點這裡 多項式描述如下 1 1 2 1 3 1 4 1 5 1 6 先請你求出多項式前n項的和。第一行輸入乙個數t代表測試資料個數 t 1000 接下來t行每行1個數代表n 0 n 2 31 對於每個輸入樣例,輸出多...