煙台大學計算機與控制工程學院
作 者: 郝環宇
完成日期: 9.23
問題描述:用單鏈表儲存一元多項式,並實現兩個多項式的加法。
輸入描述:若干資料。
程式輸出:多項式a,多項式b,有序多項式a,b,相加後的多項式。
#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;
}
執行結果:
心得體會:
該題目較為複雜,要借助老師的**加以理解,可以慢慢消化吸收,將別人的智慧型轉變成自己的,也可為以後期末課程設計題目提供參考。
第四周 多項式求和
要求 用單鏈表儲存一元多項式,並實現兩個多項式的加法。include include define max 20 多項式最多項數 typedef struct 定義存放多項式的陣列型別 polyarray typedef struct pnode 定義單鏈表結點型別,儲存多項式中的一項,鍊錶構成多項...
第四周 多項式求和
程式及 include include define max 20 多項式最多項數 typedef struct 定義存放多項式的陣列型別 polyarray typedef struct pnode 定義單鏈表結點型別,儲存多項式中的一項,鍊錶構成多項式 polynode void disppol...
第四周專案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項。直觀地,可以定義...