資料結構 多項式的運算

2022-08-24 13:57:11 字數 1445 閱讀 6535

題意理解

已知兩個多項式:

(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 21 -10 20 -21 8 35 6 -33 5 14 4 -15 3 18 2 -6 1

5 20 -4 4 -5 2 9 1 -2 0

求解思路

多項式表示 //首先是明確使用的資料結構

程式框架 //對程式整體有乙個規劃,下面的四步就是讀入、加、乘、輸出

讀多項式

加法實現

乘法實現

多項式輸出

理解起來也好理解呀。有明確的步驟,做起事來才不慌啊。

多項式的表示

僅表示非零項

陣列:變成簡單、除錯容易;需要實現確定陣列大小

鍊錶:動態性強;程式設計略複雜、除錯比較困難

可以使用動態陣列來實現 因為已經告訴了有多少項

資料結構設計

typedef struct polynode *polynomial;

struct polynode;

程式框架搭建
int main()
需要設計的函式:

讀入相乘

相加輸出

int main()
如何讀入多項式
polynomial readpoly()

t=p;p-p->link;free(t); //將多申請的節點去掉

return p;

}

rear初值是多少

rear初值為null

rear指向乙個空節點(推薦,一致性比較強)

void attach(int c,int e, polynomial *prear)
polynomial add(polynomial p1,polynomial p2)

else if(t1->expon>t2->expon)

else

}while(t1)

while (t2)

t=p;p=p->next;free(t);

return p;

};

void printpoly(polynomial p)else

}};

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

乙個多項式如果使用資料結構儲存在計算機中,有以下兩種表示方法 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...

資料結構,多項式運算,C ,鍊錶

include include include 標準庫標頭檔案包含函式exit using namespace std struct node 建立結構體 typedef node polynomial 重新命名 struct lnode typedef lnode link void create...

多項式運算

多項式運算 順序棧實現 在demo1.cpp基礎上增加 彌補異常處理 以及多位數運算缺點 include include include define ok 1 define error 2 define overflow 1 define ini size 100 typedef int elem...