02 線性結構2 一元多項式的乘法與加法運算

2021-10-05 21:20:14 字數 2770 閱讀 9695

來自:pta_資料結構_一元多項式的乘法與加法運算

設計函式分別求兩個一元多項式的乘積與和。

輸入格式:

輸入分2行,每行分別先給出多項式非零項的個數,再以指數遞降方式輸入乙個多項式非零項係數和指數(絕對值均為不超過1000的整數)。數字間以空格分隔。

輸出格式:

輸出分2行,分別以指數遞降方式輸出乘積多項式以及和多項式非零項的係數和指數。數字間以空格分隔,但結尾不能有多餘空格。零多項式應輸出0 0。

輸入樣例:

4 3 4 -5 2 6 1 -2 0

3 5 20 -7 4 3 1

輸出樣例:

15 24 -25 22 30 21 -10 20 -21 8 35 6 -33 5 14 4 -15 3 18 2 -6 1

5 20 -4 4 -5 2 9 1 -2 0

程式**:

/*

先給出項數,隨後以指數遞降的方式給出係數和指數

一共兩行,

輸出兩個多項式的和與乘積

由於給出了項數,可以使用動態陣列來儲存

*/#include

#include

// 定義部分

typedef

struct _poly* pnode;

struct _poly

;typedef pnode poly;

poly readpoly()

;void

attach

(int c,

int e, poly *prear)

;int

printpoly

(poly p)

;void

destroypoly

(poly p)

;poly addpoly

(poly p1, poly p2)

;poly muttpoly

(poly p1, poly p2)

;// 實現部分

/*列印每項係數和指數

返回值是成功列印的項數

若其為0,則為空表示式

*/int

printpoly

(poly p)

else

p = p->next;

}return cnt;}/*

將項連線到鍊錶末尾的函式

指向prear的指標1 prear last node

[&(prear)] -> [&(last node)] ->

指向prear的指標2 ^

[&(prear)] ------------|

通過prear來改變last node

通過指向prear的指標來改變prear

傳遞prear的位址來實現

*/void

attach

(int c,

int e, poly *prear)

poly readpoly()

// 刪除頭節點

poly t = p1;

p1 = p1->next;

free

(t);

t =null

;return p1;

}void

destroypoly

(poly p)

}poly addpoly

(poly p1, poly p2)

else

if(pt2->expo > pt1->expo)

else

// pt1, pt2前進

pt1 = pt1->next;

pt2 = pt2->next;}}

// 將較長的乙個多項式追加到末尾

while

(pt1)

while

(pt2)

// 刪除頭部的空節點

poly t = sumpoly;

sumpoly = sumpoly->next;

free

(t);

t =null

;return sumpoly;

}poly muttpoly

(poly p1, poly p2)

// 將隨後的專案插入到得到的多項式中

pt1 = pt1->next;

while

(pt1)

if( ptp->next && ptp->next->expo == e)

}else

pt2 = pt2->next;

} pt1 = pt1->next;

}// 刪除頭部的空節點

poly t = prdpoly;

prdpoly = prdpoly->next;

free

(t);

t =null

;return prdpoly;

}int

main

(void

)int c2 =

printpoly

(psum);if

(!c2)

destroypoly

(p1)

;destroypoly

(p2)

;destroypoly

(psum)

;return0;

}

02 線性結構2 一元多項式的乘法與加法運算

02 線性結構2 一元多項式的乘法與加法運算 20 分 設計函式分別求兩個一元多項式的乘積與和。輸入分2行,每行分別先給出多項式非零項的個數,再以指數遞降方式輸入乙個多項式非零項係數和指數 絕對值均為不超過1000的整數 數字間以空格分隔。輸出分2行,分別以指數遞降方式輸出乘積多項式以及和多項式非零...

02 線性結構2 一元多項式的乘法與加法運算

02 線性結構2 一元多項式的乘法與加法運算 20 分 設計函式分別求兩個一元多項式的乘積與和。輸入分2行,每行分別先給出多項式非零項的個數,再以指數遞降方式輸入乙個多項式非零項係數和指數 絕對值均為不超過1000的整數 數字間以空格分隔。輸出分2行,分別以指數遞降方式輸出乘積多項式以及和多項式非零...

02 線性結構2 一元多項式的乘法與加法運算

設計函式分別求兩個一元多項式的乘積與和。輸入分2行,每行分別先給出多項式非零項的個數,再以指數遞降方式輸入乙個多項式非零項係數和指數 絕對值均為不超過1000的整數 數字間以空格分隔。輸出分2行,分別以指數遞降方式輸出乘積多項式以及和多項式非零項的係數和指數。數字間以空格分隔,但結尾不能有多餘空格。...