五 一元多項式相加

2021-10-08 09:35:37 字數 2087 閱讀 7985

編寫一元多項式加法運算程式。要求用線性鍊錶儲存一元多項式(參照課本)。該程式有以下幾個功能:

1、多項式求和

0、退出

輸入

根據所選功能的不同,輸入格式要求如下所示(第乙個資料是功能選擇編號,參見測試用例):

輸出

對應一組輸入,輸出一次操作的結果(參見測試用例)。

測試輸入

期待的輸出

時間限制

記憶體限制

額外程序

測試用例 112

1 1 2 2

21 1 2 2

21 1 2 2

<1,1>,<2,2>

<1,1>,<2,2>

<1,1>,<2,2>

<2,1>,<4,2>

< 3,1>,<6,2>

1秒1024kb

0測試用例 212

6 3 8 6

23 4 4 8

31 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秒1024kb

0測試用例 312

1 1 2 2

2-1 1 -2 2

21 1 2 2

<1,1>,<2,2>

<-1,1>,<-2,2>

<1,1>,<2,2>

<0,0>

<1,1>,<2,2>

1秒1024kb

0教材上的解法挺好,就是顯得比較麻煩,需要呼叫的函式較多。這裡我們採用鍊錶的方式進行求解,實現三個函式即可:

其中多項式相加是核心,因為輸入是按指數遞增的順序,所以我們只需要分三種情況進行討論,直接求和就好。若某乙個鍊錶較長,還需要單獨遍歷後續結點。

還有乙個要注意的點就是,零多項式的輸出是<0,0>,對於零多項式也需要建立結點

#include

#include

#include

typedef

struct node

linknode,

*linklist;

linklist create

(int);

//構造多項式

linklist add

(linklist, linklist)

;//多項式相加

void

print

(linklist)

;//列印多項式

intmain()

return0;

}linklist create

(int n)

//如果沒有輸入則置0

if(q == head)

return head;

}linklist add

(linklist head1, linklist head2)

p = p->next;

}else

if(p->ex > q->ex)

//p指數大於q

q = q->next;

}else

//p指數等於q

p = p->next;

q = q->next;}}

//如果某乙個鍊錶較長,則需要單獨遍歷

while

(p !=

null

) p = p->next;

}while

(q !=

null

) q = q->next;

}//如果求和的結果為0則置0

if(ans == head3)

return head3;

}void

print

(linklist p)

printf

("<%d,%d>\n"

, p->ax, p->ex)

;//最後乙個結點

}

2 一元多項式相加

成績 10開啟時間 2014年10月19日 sunday 00 00 折扣0.8 折扣時間 2014年11月2日 sunday 23 55 允許遲交 否關閉時間 2014年11月9日 sunday 23 55 編寫一元多項式加法運算程式。要求用線性鍊錶儲存一元多項式 參照課本 該程式有以下幾個功能 ...

一元多項式的相加

編寫一元多項式加法運算程式。要求用線性鍊錶儲存一元多項式 參照課本 該程式有以下幾個功能 1.多項式求和 輸入 輸入三個多項式,建立三個多項式鍊錶pa pb pc createpolyn polynomial p,int m 輸出 顯示三個輸入多項式pa pb pc 和多項式 pa pb 多項式 p...

C 一元多項式相加

問題描述 一元多項式每一項由係數pi及x的指數i組成。若多項式按照公升冪排列,則它由n 1個係數唯一確定,因此可以用乙個線性表表示,其指數i隱藏在係數pi的序號內。分別兩個多項式a x b x 係數 指數所構成的表。輸出為兩多項式和c x 所構成的鍊錶。設計思路 將b x 加到a x 後,形成c x...