線性表的應用—兩個多項式相加
問題描述
兩個多項式的資料分別存放在abc1.in和abc2.in文字檔案中,要求相加的結果多項式的資料存放在abc.out文字檔案中。
問題求解
設計順序儲存結構
每個多項式項用一個列表[ci,ei](其中ci為係數,ei為指數)儲存,一個多項式順序表用元素為列表[ci,ei]的列表data儲存。
例如,多項式p(x)=2x3+3.2x5-6x+10的data列表為[[2.0, 3], [3.2, 5], [-6.0, 1], [10.0, 0]]。
多項式順序表類PolyList
. 設計PolyList的基本運算演算法
(1)PolyList的構造方法
(2)將多項式項e新增到末尾Add(e)
(3)建立多項式順序表CreateList(fname)
(4)返回多項式的項數getsize()
(5)返回序號為i的多項式項
(6)返回多項式的data列表getdata()
(7)對多項式按指數遞減排序Sort()
(8)返回當前多項式與多項式B的相加結果PolyAdd(B)
用i、j分別遍歷A和B的元素,先建立一個空多項式順序表C,在i、j都沒有遍歷完時迴圈,取i指向的A中元素p,取j指向的B中元素q:
① 若p元素的指數(p[1])較大,將p元素新增到C中,i增加1。
② 若q元素的指數(q[1])較大,將q元素新增到C中,j增加1。
上述迴圈過程結束後,若有一個多項式順序表沒有遍歷完,說明餘下的多項式項都是指數較小的多項式項,將它們均新增到C中,最後返回C。
設計主程式