來自: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行,分別以指數遞降方式輸出乘積多項式以及和多項式非零項的係數和指數。數字間以空格分隔,但結尾不能有多餘空格。...