編寫一元多項式加法運算程式。要求用線性鍊錶儲存一元多項式(參照課本)。該程式有以下幾個功能:
多項式求和
輸入:輸入三個多項式,建立三個多項式鍊錶pa、pb、pc
輸出:顯示三個輸入多項式pa、pb、pc、和多項式pa+pb、多項式pa+pb+pc
退出根據所選功能的不同,輸入格式要求如下所示(第乙個資料是功能選擇編號,參見測試用例):
多項式a包含的項數,以指數遞增的順序輸入多項式a各項的係數(整數)、指數(整數)
多項式b包含的項數,以指數遞增的順序輸入多項式b各項的係數(整數)、指數(整數)
多項式c包含的項數,以指數遞增的順序輸入多項式c各項的係數(整數)、指數(整數)
0 ---操作終止,退出。
對應一組輸入,輸出一次操作的結果(參見測試用例)。
1 多項式輸出格式:以指數遞增的順序輸出: 《係數,指數》,《係數,指數》,《係數,指數》,參見測試用例。零多項式的輸出格式為<0,0>
0 無輸出
測試輸入:
1↵2↵
1 1 2 2↵
2↵1 1 2 2↵
2↵1 1 2 2↵
期待輸出:
<1,1>,<2,2>↵
<1,1>,<2,2>↵
<1,1>,<2,2>↵
<2,1>,<4,2>↵
< 3,1>,<6,2>↵
測試輸入:
1↵2↵
6 3 8 6↵
2↵3 4 4 8↵
3↵1 1 5 5 9 9↵
期待輸出:
<6,3>,<8,6>↵
< 3,4>,<4,8>↵
<1,1>,<5,5>,<9,9>↵
<6,3>,< 3,4>,<8,6>,<4,8>↵
<1,1>,<6,3>,< 3,4>,<5,5>,<8,6>,<4,8>,<9,9>↵
測試輸入:
1↵2↵
1 1 2 2↵
2↵-1 1 -2 2↵
2↵1 1 2 2↵
期待輸出:
<1,1>,<2,2>↵
<-1,1>,<-2,2>↵
<1,1>,<2,2>↵
<0,0>↵
<1,1>,<2,2>↵
#include
#include
typedef
struct node
*polynomial,polynomial;
void
createpolyn
(polynomial p,
int m)
p1->next =
null;}
void
printpolyn
(polynomial p)
printf
("<%d,%d>\n"
, tmp-
>coef, tmp-
>exp);}
}void
addpolyn
(polynomial pa, polynomial pb)
else
if(a == b)
else
hb->next = qb-
>next;
free
(qb)
;
qb = hb-
>next;
qa = ha-
>next;
}else
if(a > b)}if
(qb !=
null)}
}int
main()
return0;
}
資料結構 一元多項式相加
一元多項式相加 include include struct node typedef struct node polynomial 建立帶有表頭的鍊錶 poly用於儲存係數和指數 polynomial createpoly int poly,int len return head 銷毀鍊錶 voi...
資料結構作業 一元多項式相加
ifndef multinomial h included define multinomial h included include list.h 代表每一項 typedef struct napenape 把鍊錶和多項式放一起原因 避免標頭檔案相互包含產生錯誤 鍊錶的結構體 typedef st...
資料結構實驗之一元多項式相加
實驗內容 結合書上第41頁的例子,採用鏈式儲存結構,將兩個線性鍊錶表示的一元多項式相加,並輸出。此一元多項式遵循多項式相加運算規則 對於兩個一元多項式中存在指數相同的項時,其對應係數相加。合併後係數和為零時,刪除 和多項式 中此項 合併後係數和不為零時,則構成 和多項式 中的一項。對於兩個一元多項式...