多項(xiàng)式加減法_第1頁(yè)
多項(xiàng)式加減法_第2頁(yè)
多項(xiàng)式加減法_第3頁(yè)
多項(xiàng)式加減法_第4頁(yè)
多項(xiàng)式加減法_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

多項(xiàng)式加減法第一頁(yè),共十五頁(yè),編輯于2023年,星期五實(shí)驗(yàn)?zāi)康木帉?xiě)程序,實(shí)現(xiàn)多項(xiàng)式的加法和減法運(yùn)算數(shù)據(jù)結(jié)構(gòu)及算法隊(duì)列表示:相應(yīng)多項(xiàng)式加法算法(減法類似)鏈表表示:相應(yīng)多項(xiàng)式加法算法(減法類似)具體實(shí)現(xiàn)時(shí)需要注意的問(wèn)題輸入輸出空間分配和釋放(new和delete)第二頁(yè),共十五頁(yè),編輯于2023年,星期五多項(xiàng)式的表示1:隊(duì)列用一個(gè)隊(duì)列表示一個(gè)多項(xiàng)式隊(duì)列中的每個(gè)成員是多項(xiàng)式的一項(xiàng)structNode{ floatcoef;//系數(shù)

intexp;//指數(shù)};約定:隊(duì)列從頭到尾,按照多項(xiàng)式指數(shù)增加(或減少)排列多項(xiàng)式用隊(duì)列表示的上述多項(xiàng)式隊(duì)列頭第三頁(yè),共十五頁(yè),編輯于2023年,星期五多項(xiàng)式的表示1:隊(duì)列-3823-5560386023-55多項(xiàng)式1多項(xiàng)式2結(jié)果多項(xiàng)式第四頁(yè),共十五頁(yè),編輯于2023年,星期五多項(xiàng)式的表示1:隊(duì)列算法實(shí)現(xiàn)可以使用第一個(gè)實(shí)驗(yàn)中自己實(shí)現(xiàn)的隊(duì)列類可以使用STL中的隊(duì)列具體用法可以參看msdn第五頁(yè),共十五頁(yè),編輯于2023年,星期五多項(xiàng)式的表示2:鏈表用一個(gè)鏈表表示一個(gè)多項(xiàng)式鏈表中的每個(gè)結(jié)點(diǎn)是多項(xiàng)式的一項(xiàng)structNode{ floatcoef;//系數(shù)

intexp;//指數(shù)

Node*next;};60-5538多項(xiàng)式鏈表表示第六頁(yè),共十五頁(yè),編輯于2023年,星期五多項(xiàng)式的表示2:鏈表方式一:基于某個(gè)鏈表60-5538^2335-38^6023-25^鏈表1表示多項(xiàng)式1鏈表2表示多項(xiàng)式2鏈表1表示結(jié)果多項(xiàng)式鏈表2為空結(jié)果多項(xiàng)式為在鏈表1的基礎(chǔ)上對(duì)其進(jìn)行結(jié)點(diǎn)的插入和刪除,得到結(jié)果多項(xiàng)式。即將鏈表2中的結(jié)點(diǎn)插入到鏈表1中適當(dāng)?shù)牡胤?,或者若與鏈表1中結(jié)點(diǎn)指數(shù)相等則運(yùn)算后刪除該節(jié)點(diǎn)第七頁(yè),共十五頁(yè),編輯于2023年,星期五多項(xiàng)式的表示2:鏈表方式二:利用原結(jié)點(diǎn)空間,結(jié)果用一個(gè)新鏈表存放60-5538^2335-38^6023-25^鏈表1表示多項(xiàng)式1鏈表2表示多項(xiàng)式2鏈表3表示結(jié)果多項(xiàng)式鏈表1為空,鏈表2為空結(jié)果多項(xiàng)式為從鏈表1和鏈表2的頭部開(kāi)始進(jìn)行指數(shù)比較。指數(shù)相等則系數(shù)相加,把結(jié)果結(jié)點(diǎn)鏈接到鏈表3的尾部,刪除多余結(jié)點(diǎn);該結(jié)點(diǎn)指數(shù)唯一,則直接將該節(jié)點(diǎn)鏈接到鏈表3的尾部第八頁(yè),共十五頁(yè),編輯于2023年,星期五多項(xiàng)式的表示2:鏈表方式三:新開(kāi)辟結(jié)點(diǎn)空間,結(jié)果用一個(gè)新鏈表存放60-5538^2335-38^6023-25^鏈表1表示多項(xiàng)式1鏈表2表示多項(xiàng)式2鏈表3表示結(jié)果多項(xiàng)式鏈表1不變,鏈表2不變結(jié)果多項(xiàng)式為從鏈表1和鏈表2的頭部開(kāi)始進(jìn)行指數(shù)比較。指數(shù)相等則系數(shù)相加,新開(kāi)辟空間存放該項(xiàng)結(jié)果,把新生成的結(jié)果結(jié)點(diǎn)鏈接到鏈表3的尾部;若結(jié)點(diǎn)指數(shù)唯一,也新開(kāi)辟空間存放該結(jié)點(diǎn)的值,并將此結(jié)點(diǎn)鏈接到鏈表3中第九頁(yè),共十五頁(yè),編輯于2023年,星期五具體實(shí)現(xiàn):多項(xiàng)式輸入按多項(xiàng)式一項(xiàng)一項(xiàng)輸入,比如提示輸入多項(xiàng)式中某一項(xiàng)的系數(shù),輸入多項(xiàng)式某一項(xiàng)的指數(shù)項(xiàng)數(shù)預(yù)先定好約定某特殊符號(hào)作為輸入結(jié)束符直接將整個(gè)多項(xiàng)式一次輸入

6-5x^5+3x^8不用輸入,直接程序內(nèi)賦值,構(gòu)造多項(xiàng)式編寫(xiě)程序測(cè)試的時(shí)候使用,用于測(cè)試多項(xiàng)式算法是否成功表示為第十頁(yè),共十五頁(yè),編輯于2023年,星期五具體實(shí)現(xiàn):多項(xiàng)式結(jié)果輸出將多項(xiàng)式一項(xiàng)項(xiàng)輸出比如,輸出多項(xiàng)式中第n項(xiàng)的指數(shù),系數(shù)多項(xiàng)式整體輸出6-5x^5+3x^8考慮每一項(xiàng)的符號(hào)問(wèn)題加號(hào)還是減號(hào)?通過(guò)判斷系數(shù)與0的大小,決定是否要加上“+”第一項(xiàng)是否有符號(hào)(加號(hào)可以省略,減號(hào)不可以省略)考慮指數(shù)為0的情況x0不用輸出(x^0)第十一頁(yè),共十五頁(yè),編輯于2023年,星期五具體實(shí)現(xiàn)主要目的是實(shí)現(xiàn)多項(xiàng)式的加法和減法,那么可以先把目光集中在具體的算法上,而輸入輸出可以簡(jiǎn)化先,等把多項(xiàng)式的加法減法實(shí)現(xiàn),再進(jìn)一步完善輸入輸出省略輸入:直接在程序內(nèi)部賦值省略輸出:直接用單步調(diào)試的方式,觀察第十二頁(yè),共十五頁(yè),編輯于2023年,星期五具體實(shí)現(xiàn)方法一:用STL中的隊(duì)列#ifndefPOLYNOMIAL_H_#definePOLYNOMIAL_H_#include<iostream>#include<queue>usingnamespacestd;structNode{ floatcoef;//系數(shù)

intexp;//指數(shù)};//classPolynomial-------------------------------------//classPolynomial:privatequeue<Node>{public: voidread(); voidprint()const; //多項(xiàng)式p+q voidequals_sum(Polynomialp,Polynomialq); //多項(xiàng)式p-q voidequals_difference(Polynomialp,Polynomialq);};#endifPolynomial.h第十三頁(yè),共十五頁(yè),編輯于2023年,星期五具體實(shí)現(xiàn)方法二:用自己實(shí)現(xiàn)的隊(duì)列類#ifndefPOLYNOMIAL_H_#definePOLYNOMIAL_H_#include<iostream>usingnamespacestd;#include"Extended_queue.h"http://classPolynomial-------------------------------------//classPolynomial:privateExtended_queue{public: voidread(); voidprint()const; voidequals_sum(Polynomialp,Polynomialq); voidequals_difference(Polynomialp,Polynomialq);};#endifPolynomial.h第十四頁(yè),共十五頁(yè),編輯于2023年,星期五具體實(shí)現(xiàn)方法三:直接用鏈表#ifndefPOLY_H#definePOLY_H#include<iostream>#include"LinkedList.h"usingnamespacestd;classPoly{public: LinkedList*polynomial; //構(gòu)造函數(shù)

Poly() { polynomial=newLinkedList;

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論