資料結構筆記 多項式加法運算

2021-09-10 05:54:07 字數 1355 閱讀 7483

乙個多項式如果使用資料結構儲存在計算機中,有以下兩種表示方法:

(1)使用n+2長度的一維陣列來存放,陣列的第乙個位置儲存最大指數n項的係數其他位置按照指數n遞減,按序儲存對應項數:p = (n,an,an-1,...,a1,a0)。例如p(x) = 2x^5+3x^4+5x^2+4x+1轉換為陣列a,a = [5,2,3,0,5,4,1]

(2)只儲存多項式中的非0項,如果有m項非零項,就使用2m+1的陣列來儲存每乙個非零項的指數和係數,陣列的第乙個元素則為此多項式非零項的個數。例如p(x) = 2x^5+3x^4+5x^2+4x+1轉換為陣列a,a = [5,2,5,3,4,5,2,4,1,1,0]

用第一種多項式表示法表示多項式a(x)=3x^4+7x^3+6x+2和b(x)=x^4+5x^3+2x^2+9並進行加法運算

#將兩個最高次方相等的多項式相加後輸出結果

items = 6

def print_p(poly,items):

maxexp = poly[0]

for i in range(1,items):

maxexp = maxexp-1

if poly[i] != 0:

if (maxexp+1) != 0:

print('%dx^%d'%(poly[i],maxexp+1),end='')

else:

print('%d'%poly[i],end='')

if maxexp>=0:

print('%c'%'+',end='')

print()

def sum_p(p1,p2):

result = [none]*items

result[0] = p1[0]

for i in range(1,items):

result[i] = p1[i]+p2[i]

print_p(result,items)

polya = [4,3,7,0,6,2]

polyb = [4,1,5,2,0,9]

#列印多項式a

print('多項式a==>',end='')

print_p(polya,items)

#列印多項式b

print('多項式b==>',end='')

print_p(polyb,items)

#求和print('求和結果==>',end='')

sum_p(polya,polyb)

結果

多項式a==>3x^4+7x^3+6x^1+2

多項式b==>1x^4+5x^3+2x^2+9

求和結果==>4x^4+12x^3+2x^2+6x^1+11

資料結構 鍊錶 多項式加法

問題描述 用單鏈表儲存一元多項式,並實現兩個多項式的加法。可以看出,這種方案適合對某些多項式的處理。但是,在處理一些次數高但項數少的多項式時,存在浪費空間的現象,會有很多閒置的0。可以使用如下定義的單鏈表結構儲存多項式 鍊錶中的每乙個結點是多項式中的一項,結點的資料域包括指數和係數兩部分,由指標域連...

資料結構 多項式的運算

題意理解 已知兩個多項式 1 3x 4 5x 2 6x 2 2 5x 7x 4 3x 多項式和 5x 4x 4 5x 2 9x 2 多項式乘積 a b c d ac ad bc bd 略輸入樣例 4 3 4 5 2 6 1 2 0 3 5 20 7 4 3 1輸出樣例 15 24 25 22 30 ...

資料結構 一元多項式加法

7 17 一元多項式的加法 20 分 設計程式求兩個一元多項式的和。輸入分2行,每行分別先給出多項式非零項的個數,再以指數遞降方式輸入乙個多項式非零項係數和指數。數字間以空格分隔。輸出1行,以指數遞降方式輸出和多項式非零項的係數和指數 保證不超過整數的表示範圍 數字間以空格分隔,但結尾不能有多餘空格...