




已閱讀5頁(yè),還剩7頁(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)介
實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱:線性表的基本運(yùn)算及多項(xiàng)式的算術(shù)運(yùn)算 班級(jí): 姓名: 學(xué)號(hào): 日期:一、問(wèn)題描述1.實(shí)驗(yàn)?zāi)康暮鸵骯.掌握線性表的插入、刪除、查找等基本操作設(shè)計(jì)與實(shí)現(xiàn)b.學(xué)習(xí)利用線性表提供的接口去求解實(shí)際問(wèn)題c.熟悉線性表的的存儲(chǔ)方法2.實(shí)驗(yàn)任務(wù): a.實(shí)現(xiàn)順序表和單鏈表的基本運(yùn)算,多項(xiàng)式的加法和乘法算術(shù)運(yùn)算。 b.能夠正確演示線性表的查找、插入、刪除運(yùn)算。實(shí)現(xiàn)多項(xiàng)式的加法和乘法運(yùn)算操作。3. 實(shí)驗(yàn)內(nèi)容:a.實(shí)現(xiàn)順序表和單鏈表的基本運(yùn)算b.輸入并建立多項(xiàng)式;輸出多項(xiàng)式;多項(xiàng)式相加.(可利用單鏈表或單循環(huán)鏈表實(shí)現(xiàn)之)。二 程序設(shè)計(jì) 1.類的層次結(jié)構(gòu):線性表的基本運(yùn)算程序中包括三個(gè)文件,分別為: linearlist.h,seqlist.h,LinearListMain.cpp。其中順序表類seqlist.h中,私有段封裝了兩個(gè)私有數(shù)據(jù)成員maxLenght和elements,同時(shí)繼承了LinearList類中的n,分別存儲(chǔ)表中元素最多個(gè)數(shù),元素和元素的實(shí)際個(gè)數(shù)。多項(xiàng)式的加法和乘法算術(shù)運(yùn)算程序中包括了三個(gè)文件,分別為Polynominal.h,Term.h,main.cpp。其中項(xiàng)結(jié)點(diǎn)類Team中定義了三個(gè)私有數(shù)據(jù)域,即系數(shù)coef、指數(shù)exp和指向下一個(gè)項(xiàng)結(jié)點(diǎn)的指針域link并且polynominal被聲明成了項(xiàng)結(jié)點(diǎn)類Team的友元。多項(xiàng)式加法 多項(xiàng)式乘法2.實(shí)驗(yàn)原理: 以線性表來(lái)描述一元多項(xiàng)式,存儲(chǔ)結(jié)構(gòu)采用單鏈表,每個(gè)結(jié)點(diǎn)存儲(chǔ)的多項(xiàng)式中某一項(xiàng)的系數(shù)和指數(shù),建立單鏈表時(shí)指數(shù)高的結(jié)點(diǎn)列于指數(shù)低的 結(jié)點(diǎn)之后,即線性表的元素按指數(shù)遞增有序排列。 3.思想算法:以線性表來(lái)描述一元多項(xiàng)式,存儲(chǔ)結(jié)構(gòu)采用單鏈表,每個(gè)結(jié)點(diǎn)存儲(chǔ)的多項(xiàng)式中某一項(xiàng)的系數(shù)和指數(shù),建立單鏈表時(shí)指數(shù)高的結(jié)點(diǎn)列于指數(shù)低的結(jié)點(diǎn)之后,即線性表的元素按指數(shù)遞增有序排列。 4.算法分析:線性表的基本運(yùn)算程序的主要算法的算法時(shí)間復(fù)雜度和空間復(fù)雜度為O(n),多項(xiàng)式的加法和乘法算術(shù)運(yùn)算程序的主要算法的時(shí)間復(fù)雜程度和空間復(fù)雜程度為O(n)。三 .程序代碼a. 多項(xiàng)式基本運(yùn)算template class SeqList:public LinearList public: SeqList(int mSize); SeqList() delete elements; bool IsEmpty() const; int Length() const; bool Find(int i,T& x) const; int Search(T x) const; bool Insert(int i,T x); bool Delete(int i); bool Update(int i,T x); void Output(ostream& out)const ; private: int maxLength; T *elements; ;SeqList LObj(SIZE);template SeqList:SeqList(int mSize) maxLength=mSize; elements=new TmaxLength; n=0;template bool SeqList:IsEmpty() constreturn n=0;template int SeqList:Length() constreturn n;template bool SeqList:Find(int i,T& x) constif (in-1) coutOut Of Bountsendl; return false;x=elementsi; return true;templateint SeqList:Search(T x) constfor(int j=0;jn;j+)if (elementsj=x) return j;return -1; templatebool SeqList:Insert(int i,T x)if (in-1)coutOut Of Boundsendl; return false; if (n=maxLength)coutOverFlowi;j-)elementsj+1=elementsj; elementsi+1=x; n+;return true;templatebool SeqList:Delete(int i)if(!n) coutUnderFlowendl; return false;if (in-1)coutOut Of Boundsendl; return false;for (int j=i+1;jn;j+)elementsj-1=elementsj; n-;return true;templatebool SeqList:Update(int i,T x)if (in-1)coutOut Of Boundsendl; return false;elementsi=x; return true;templatevoid SeqList:Output(ostream& out) constfor (int i=0;in;i+)outelementsi ;outendl;B.多項(xiàng)式的加法和乘法#include class Term public:Term(int c,int e);Term(int c,int e,Term *nxt);Term *InsertAfter(int c, int e);private:int coef; int exp; Term *link;friend ostream & operator(ostream &, const Term &); friend class Polynominal;Term:Term(int c,int e):coef(c),exp(e)link=0;Term:Term(int c,int e,Term *nxt):coef(c),exp(e)link=nxt;Term *Term:InsertAfter(int c, int e)link=new Term(c, e, link);return link;ostream & operator(ostream & out, const Term & val)if(val.coef=0) return out;outval.coef;switch(val.exp)case 0:break;case 1:outx;break;default:outxval.exp;break;return out;class Polynominalpublic:Polynominal();Polynominal();void AddTerms(istream & in);void Output(ostream & out)const;void PolyAdd(Polynominal & r);void PolyMulti(Polynominal & r);private:Term *theList;friend ostream & operator(istream &, Polynominal &);friend Polynominal & operator+(Polynominal &,Polynominal &); friend Polynominal & operator*(Polynominal &,Polynominal &); ;Polynominal:Polynominal() theList=new Term(0,-1); theList-link=theList; Polynominal:Polynominal()Term *p=theList-link;while(p!=theList)theList-link=p-link;delete p;p=theList-link;delete theList;void Polynominal:AddTerms(istream & in) Term *q=theList;int c,e;for(;) coutInput a term(coef,exp):nce; if (eInsertAfter(c,e); void Polynominal:Output(ostream& out)const int first=1; Term *p=theList-link; coutThe polynominal is:nlink) if (!first & (p-coef0) out+; first=0; out*p; coutnlink; q=q1-link; while (p-exp=0) while (p-expexp) q1=q; q=q-link; if(p-exp=q-exp) q-coef=q-coef+p-coef; if(q-coef=0) q1-link=q-link; delete(q); q=q1-link; else q1=q; q=q-link; else q1=q1-InsertAfter(p-coef,p-exp); p=p-link; void Polynominal:PolyMulti(Polynominal& r) Term *q,*q1=theList,*p; q=q1-link; while(q-exp=0) p=r.theList-link; while (p-exp=0) q1=q1-InsertAfter(q-coef*p-coef,q-exp+p-exp); p=p-link; q1-link=q-link; delete(q); q=q1-link;ostream& operator (istream& in, Polynominal &x) x.AddTerms(in); return in;Polynominal & operator+(Polynominal &a, Polynominal &b) a.PolyAdd(b); return a;Polynominal & operator*(Polynominal &a, Polynominal &b) a.PolyMulti(b); return a;void main() Polynominal p,q,w; cinp; coutq; coutw; coutw; q=q+p; coutq; w=w*p; coutw;四、測(cè)試與調(diào)試1. 測(cè)試用例和結(jié)果2 .結(jié)果分析線性表的基本運(yùn)算程序:通過(guò)程序可以進(jìn)行查找某一個(gè)數(shù)據(jù)、插入
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年醫(yī)學(xué)影像技術(shù)師執(zhí)業(yè)考試試卷及答案
- 2025年建筑師執(zhí)業(yè)考試模擬試題及答案
- 2025年競(jìng)技體育教練員資格考試卷及答案
- 2025年化學(xué)基礎(chǔ)知識(shí)及應(yīng)用考試試卷及答案
- 2025年機(jī)械工程師職業(yè)資格考試試卷及答案
- 電力設(shè)備檢修與供應(yīng)鏈管理承包合同
- 醫(yī)療機(jī)構(gòu)執(zhí)業(yè)醫(yī)師崗位全職聘用及醫(yī)療設(shè)備租賃合同
- 公眾號(hào)付費(fèi)閱讀功能與社交媒體互動(dòng)集成合同
- 個(gè)性化別墅庭院景觀設(shè)計(jì)、施工與景觀照明工程合同
- 海外留學(xué)考試自習(xí)室租賃及學(xué)習(xí)資料供應(yīng)合同
- 《售后服務(wù)體系》課件
- 售后服務(wù)人員培訓(xùn)資料課件
- 房屋柜子定制合同模板
- 用眼衛(wèi)生(教學(xué)設(shè)計(jì)) 體育三年級(jí)上冊(cè)
- 小學(xué)六年級(jí)畢業(yè)班家長(zhǎng)會(huì)課件
- 2024年安徽合肥東部新中心建設(shè)投資限公司招聘8人高頻500題難、易錯(cuò)點(diǎn)模擬試題附帶答案詳解
- 女性下生殖道粘連診治中國(guó)專家共識(shí)(2024年版)解讀
- 職業(yè)學(xué)院大數(shù)據(jù)與財(cái)務(wù)管理專業(yè)人才需求與專業(yè)改革的調(diào)研報(bào)告
- 中建醫(yī)療工程交付指南
- 中國(guó)無(wú)人潛航器行業(yè)全景速覽
- 進(jìn)銷(xiāo)存-自動(dòng)查詢明細(xì)統(tǒng)計(jì)
評(píng)論
0/150
提交評(píng)論