第四周 專案六 多項式求和

2021-08-08 21:38:58 字數 1688 閱讀 5057

/*

* 檔名稱:s

* 作    者:張翠平

* 完成日期:2017 年 9 月 29 日

* 版 本 號:v1.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 多項式求和

檔名稱 test.cpp 完成日期 2015年10月12日 版本號 vc 6.0 問題描述 用單鏈表儲存一元多項式,並實現兩個多項式的加法。include include define max 20 多項式最多項數 typedef struct 定義存放多項式的陣列型別 polyarray type...

第四周專案6 多項式求和

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