2 一元多項式的加法

2022-02-12 21:23:29 字數 1512 閱讀 9268

採用鍊錶的結構儲存一元多項式

那麼到底儲存什麼呢???

存指數、係數

通過給鍊錶設定三個資料域,乙個指數域、乙個係數域、乙個指標域,這就可以表示一元多項式的一項了

然後讓鍊錶按照指數遞減的順序儲存

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

//一元

多項式加法

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()

總結:在add函式中通過建立乙個臨時的空結點,比較l1和l2的每一項中指數的大小,把較大的乙個的指數、係數傳遞到attach中

重新建立結點,把指數、係數分別賦值

最妙的是,在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...