第4周專案6 多項式求和

2021-07-05 14:23:37 字數 1706 閱讀 4552

問題及**:

/*

檔名稱:專案6.cpp

作 者:王聰

完成日期:2023年10月5日

版 本 號:v1.0

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

輸入描述:無

程式輸出:多項式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;

}

執行結果:

知識點總結:

主要考察了我們對鍊錶的應用。

學習心得:

這個專案比較難理解,要借助老師的**一步步深入,有乙個疑問是為什麼沒有用到我們的演算法庫,現在明白了是因為定義了新的鍊錶多項式的陣列型別。

第4周專案6 多項式求和

問題及 檔名稱 第4周專案6 多項式求和.cpp 作 者 劉強 完成日期 2015年10月3日 版 本 號 v1.0 問題描述 用單鏈表儲存一元多項式,並實現兩個多項式的加法。輸入描述 若干資料。程式輸出 多項式a,多項式b,有序多項式a,b,相加後的多項式。include include defi...

第4周專案6 多項式求和

問題及 檔名稱 main.cpp 問題描述 用單鏈表儲存一元多項式,並實現兩個多項式的加法 include include define max 20 多項式最多項數 typedef struct 定義存放多項式的陣列型別 polyarray typedef struct pnode 定義單鏈表結點...

第4周專案5 多項式求和

問題及 檔名稱 7.cpp 作 者 王修文 完成日期 2016年9月22日 版 本 號 v1.0 問題描述 演算法庫包括兩個檔案 標頭檔案 dlinklist.h,包含定義順序表資料結構的 巨集定義 要實現演算法的函式的宣告 原始檔 dlinklist.cpp,包含實現各種演算法的函式的定義 請採用...