採用鍊錶的結構儲存一元多項式
那麼到底儲存什麼呢???
存指數、係數
通過給鍊錶設定三個資料域,乙個指數域、乙個係數域、乙個指標域,這就可以表示一元多項式的一項了
然後讓鍊錶按照指數遞減的順序儲存
y=3x^5+4x^4-2x就是這個樣子的了
那麼怎麼求 y=3x^5+4x^4-x^3+2x-1 + y=2x^4+x^3-7x^2+x 的結果呢???
input
3 54 4
-1 3
2 1-1 0
2 41 3
-7 2
1 1output
3 56 4
-7 2
3 1-1 0
輸入的第1行為多項式的項數,剩下的n行為多項式各項的係數和指數
1總結:在add函式中通過建立乙個臨時的空結點,比較l1和l2的每一項中指數的大小,把較大的乙個的指數、係數傳遞到attach中//一元
多項式加法
23 #include 4 #include 5 #include 6
7 typedef struct lnode *link;
8struct
lnode;
1314
15link read()
3031
return l; //
返回多項式的頭結點 32}
3334
link add(link l1,link l2)else
if(l1->exponexpon)else
52 l1=l1->next;
53 l2=l2->next;
54} 55}
5657
while(l1)
6162
while(l2)
6667 rear->next=null;
68 temp=front;
69 front=front->next;
70free(temp); //
釋放剛剛建立的頭結點
71return
front;
72}
7374
void attach(int c,int e,link *prear)
8485
8687
void
print(link l)95}
96int
main()
重新建立結點,把指數、係數分別賦值
最妙的是,在attach中傳遞的是rear的位址,因為每次要修改結果多項式尾指標,所以必須傳遞位址才行
還有很多的小細節,在程式設計的過程中要考慮全面
在兩個多項式相等後,要判斷和是否為0;為0就不需要傳遞,不為0才需要傳遞
polynomial 一元多項式加法實現
polynomial 一元多項式加法實現 include stdio.h include malloc.h include stdlib.h typedef struct lnodelink,linklist linklist initlist link makenode linklist crea...
一元多項式
一元多項式 功能 1 求解2個一元多項式的和 2 求解2個一元多項式的差 3 列印一元多項式 注 3 這個本來不算是乙個功能,但是發現列印一元多項式的時候問題很多。例如 1x應該列印成 x,x 0不應該應該列印出來 1.結點的定義 typedef struct polynomial polynomi...
一元多項式
include include using namespace std 定義結構體 typedef struct polynode polynode,polylist 建立關於多項式結構體的單鏈表,以係數0結束輸入 polylist polycreate 尾插法建立單鏈表 rear next nul...