第四周專案6 多項式求和

2021-07-05 19:04:17 字數 1676 閱讀 8827

/*    

* 檔名稱:test.cpp

* 完成日期:2023年10月12日

* 版本號: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;

}

執行結果:

知識點總結:

鍊錶中的每乙個結點是多項式的一項,結點的資料域包括指數和係數兩部分,由指標域連線起多項式的各項。

學習心得:

多項式的加法有點複雜,需要更用心才能解決,太不容易了

第四周專案6 多項式求和

問題及 檔名稱 多項式求和.cpp 作 者 杜文文 完成日期 2015年 10月 11日 問題描述 用單鏈表儲存一元多項式,並實現兩個多項式的加法。1 儲存多項式的資料結構 多項式的通式是p n x a n x n a n 1 x n 1 a 1 x a 0 n次多項式共有n 1項。直觀地,可以定義...

第四周專案6 多項式求和

煙台大學計算機與控制工程學院 問題描述 用單鏈表儲存一元多項式,並實現兩個多項式的加法 輸入描述 無 輸出描述 include include define max 20 多項式最多項數 typedef struct 定義存放多項式的陣列型別 polyarray typedef struct pno...

第四周 專案6 多項式求和

檔名稱 test.cpp 完成日期 2015年10月12日 問題描述 多項式求和 執行程式 include include define max 20 多項式最多項數 typedef struct 定義存放多項式的陣列型別 polyarray typedef struct pnode 定義單鏈表結點...