C 實驗 STL多項式加法

2021-09-10 06:54:01 字數 1541 閱讀 4559

分析傳統的做法:

(1)多項式用list容器表示,容器內的每乙個元素代表多項式中的每一項。設定多項式p1,p2,並使結果p3結果為空。

(2)利用sort系統函式,使多項式p1,p2中每一項按係數公升序排列。

(3)利用iterator技術遍歷p1,p2。當p1,p2沒有檢測完各自的鍊錶時,比較當前結點的指數域。

(4)指數相等,對應項係數相加。若相加結果不為0,則結果加入p3,否則不加入p3。p1,p2各自的iterator迭代指標都進1。

(5)指數不等,小係數者加入p3,相應的迭代器指標進1。

(6)當p1,p2的iterator迭代指標已經有乙個檢測完畢,把另乙個鍊錶的剩餘部分加入p3即可,採用函式是系統函式splice。

(1)利用sort系統函式,使多項式p1,p2中每一項按係數公升序排列。

(2)利用merge函式將p1和p2合併,合併後只剩p1。

(3)利用unique函式將p1去掉重複的多項式(需要過載等於號以指數為基準),去除的同時需要將兩指數相等的進行相加,具體看**實現。

(4)然後利用迭代器遍歷p1,將每乙個多項式push_back到p3中,這就實現了多項式的相加。

標頭檔案addpolynomial.h

#ifndef addpolynomial_h_included

#define addpolynomial_h_included

#include #include #include using namespace std;

class term

int getcoef()

int getexp()

bool operator<(term& t)

bool operator==(term& t) //過載等於號支援去重

};typedef listlistterm;

ostream &operator<<(ostream& os,term& t)

class polynomial

polynomial addpolynomial(polynomial& obj)

return result;

}void show()

cout << *it << "+";

it++;}}

};#endif // addpolynomial_h_included

主函式main.cpp

#include "addpolynomial.h"

int main()

這樣就是用list容器的函式簡便的完成了多項式的相加。

STL演算法實現 多項式加法

一 include include using namespace std struct point bool cmp const point a,const point b 公升序,降序只需要改變大於小於符號 for int i 0 i aa.x aa.z s2.push back aa s1.m...

多項式加法

題目內容 乙個多項式可以表達為x的各次冪與係數乘積的和,比如 現在,你的程式要讀入兩個多項式,然後輸出這兩個多項式的和,也就是把對應的冪上的係數相加然後輸出。程式要處理的冪最大為100。輸入格式 總共要輸入兩個多項式,每個多項式的輸入格式如下 每行輸入兩個數字,第乙個表示冪次,第二個表示該冪次的係數...

多項式加法

題目內容 乙個多項式可以表達為x的各次冪與係數乘積的和,比如 2x6 3x5 12x3 6x 20 現在,你的程式要讀入兩個多項式,然後輸出這兩個多項式的和,也就是把對應的冪上的係數相加然後輸出。程式要處理的冪最大為100。輸入格式 總共要輸入兩個多項式,每個多項式的輸入格式如下 每行輸入兩個數字,...