数据结构笔记-多项式加法运算

一个多项式如果使用数据结构存储在计算机中,有以下两种表示方法:

(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

 

你可能感兴趣的:(数据结构,python)