版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實驗二一元多項式相加問題本實驗的LI的是進一步熟練掌握應(yīng)用鏈表處理實際問題的能力。問題描述一元多項式相加是通過鍵盤輸入兩個形如P0+ P1X1+ P2X2+ PnXn的多項 式,經(jīng)過程序運算后在屏幕上輸出它們的相加和。二. 數(shù)據(jù)結(jié)構(gòu)設(shè)計分析任意一元多項式的描述方法可知,一個一元多項式的每一個子項都是由“系數(shù)一指數(shù)”兩部分來組成的,所以可以將它抽象成一個由“系數(shù)一指數(shù)對”構(gòu) 成的線性表,由于對多項式中系數(shù)為0的子項可以不記錄它的指數(shù)值,對于這樣的 情況就不再付出存儲空間來存放它了?;谶@樣的分析,我們可以采用一個帶有頭 結(jié)點的單鏈表來表示一個一元多項式。具體數(shù)據(jù)類型定義為:Typedef str
2、uct nodeFloat coef:/系數(shù)域Int exp;/指數(shù)域Int flag;/標(biāo)記結(jié)點是否已經(jīng)過運算加入新的鏈表的標(biāo)志位Struct node next;/指針域,指向下一個系數(shù)不為0的子項PolyNode;PolyNode *head_a , *head_b, *head_c;這3個指針分別作為鏈表A、B、C的頭指針。三. 功能(函數(shù))設(shè)計1. 輸入并建立多項式的功能模塊此模塊要求按照指數(shù)遞增的順序和一定的輸入格式輸入格式輸入各個系數(shù)不 為0的子項的“系數(shù)一指數(shù)對”,輸入一個子項建立一個相關(guān)結(jié)點,當(dāng)輸入結(jié)束標(biāo) 志的時候就停止輸入,而轉(zhuǎn)去執(zhí)行程序下面的部分。例如按照這些操作步驟輸入
3、多項式:屏幕提示:請輸入第一個多項式,按照“系數(shù),指數(shù)”的形式輸入每一個子項!b 12, 2-3, 1001,0 (輸入結(jié)束的條件,當(dāng)系數(shù)和指數(shù)同時為0的時候認為輸入結(jié)束)請輸入第二個多項式,按照“系數(shù),指數(shù)”的形式輸入每一個子項!100, 1200, 2300, 2001, 0輸入后程序?qū)⒎謩e建立兩個鏈表來描述兩個一元多項式:A(X)=X+2X2-3X100B (X)二100X+200X2+300X200這兩個多項式相加結(jié)果應(yīng)為:C(X)二101X+202X2-3X100+300X2002.多項式相加的功能模塊此模塊根據(jù)在1中建立的兩個多項式進行相加的運算,并存放在以C為頭指 針的一個新鏈表
4、中。可以采用如下的方法進行設(shè)計:設(shè)指針p、q、r分別指向描述多項式的鏈表A、B、C頭部,p指針按照A中 結(jié)點順序一個一個地移動,每移動一個結(jié)點,就通過q指針的移動來尋找B中是否 有與p->exp相同的。(1)如果有,在C中合適的位置(注意多項式存儲是按照指數(shù)遞增有序 的)建立新結(jié)點,并做如下賦值操作:r->coef=p->coef+q->coef;r-> exp=p-> exp+q-> exp;p_>flag二1;q->flag=l;/*標(biāo)志子項已參與過運算*/p=p->next;q二head_b;(2)如果沒有,在C中合適的位置建立
5、新結(jié)點,并做如下賦值操作:r->coef=p->coef;r->exp=p->exp;p->flag=l;p二p_next;q二head_b;注意:當(dāng)A、B中可以相加的兩項系數(shù)和為0的時候,在C中就不用分配新的 空間來進行存儲了。3. 多項式顯示的功能模塊此模塊用于多項式的顯示,程序可以使用圖形界面,通過調(diào)整指數(shù)應(yīng)該出現(xiàn) 的坐標(biāo)位置來表示指數(shù)形式,如X+2X2-3X100的形式,也可以使用文本界面,用 "系數(shù)-指數(shù)對”的形式表示表達式,如(1,1)、(2, 2)、(-3, 100)。四. 界面設(shè)計注意提示用戶每一步操作輸入的格式和限制。指導(dǎo)用戶按照正確的
6、格式輸入 數(shù)據(jù)。j(是否進行一元 多項式的運算)i! =l&&i! =22結(jié)束程序return 0C結(jié)束相加,再次循環(huán)上述流程圖1、輸入正確的數(shù)時,結(jié)果如圖¥二馨霜鼾-元多項式啊計算-元多閘和腫并斷和 系勲一指數(shù)火輸露黯和指數(shù)都為涮,錄入多項瓏束:;曙討曹示一元務(wù)項卻和B,計算一元多項式航B的和并顯示和 備技任意犍繼續(xù)2、輸入結(jié)果錯誤時,加入輸入的為字符吊結(jié)果如圖1 創(chuàng)建并顯示一元參項式滋B計算一元參頂式A和B片和井顯示和2 結(jié)棗血序 lejid輸人皿有戻,重新締入五編碼實現(xiàn)/ sgiysn. cpp :定義控制臺應(yīng)用程序的入口點。#include "std
7、afx h"#include<iostream>using namespace std;struct nodefloat coef;/系數(shù)域float exp: /指數(shù)域int flag;/運算過的標(biāo)志node *next; /指針域,指向下一個系數(shù)不為的子項;node *putlist ()/模塊一、輸入并建立多項式的功能模塊,利用兩個局部變 量建立鏈表,當(dāng)輸入的值都為時,返回的是heod二NULL空指針 float x;float y;node *head,水temp,歡tempi, *headl;node*tail;headl二NULL;cout«zz系數(shù)
8、x指數(shù)Y(輸入的系數(shù)和指數(shù)都為時,錄入多項式結(jié) 束):,«endl;cin>>x>>y;if (x=O&&y=O)return headl;elsetemp二new node;temp-coef二x;temp->exp=y;head二temp;tail=temp;/建立第一個結(jié)點cout«"系數(shù)X-指數(shù)Y(輸入的系數(shù)和指數(shù)都為時,錄入多項式結(jié) 束):,«endl;cin>>x>>y;if(x=0&&y=0) tail->next二NULL;return head;
9、如何輸入第二個結(jié)點為空則返回head,里面有一個結(jié)點else辻(y> (ta 訂-exp)temp二new node;temp-coef二x;temp->exp=y ;tail-next二temp;tail=temp;如果輸入的第二結(jié)點的指數(shù)比第一個大時,先建立一個結(jié)點temp,尾指 針tail再指向temp,再用tail=tempelse if (y(tail->exp)tail->coef=ta訂-coef+x;/如果第_.個結(jié)點的指數(shù)和第一個相等時,把此 對應(yīng)的系數(shù)直接加到前一個結(jié)點的系數(shù)elsetempi二new node;tempi-coef二x;tempi-
10、exp二y;tempi->next二tail;head=templ;temp/如果輸入的第二結(jié)點的指數(shù)比第一個小時,先建立一個結(jié)點temp, 指向尾指針tail,再用head二temptail->next二NULL;/最后令tiil>next指向空float m;float n;cout«"系數(shù)X指數(shù)Y(輸入的系數(shù)和指數(shù)都為時,錄入多項式結(jié) 束):,«endl;cin>>m>>n;if (m=0&&n=0)return head;else wh訂e(m!=0n!=0)node *cu:r二head;node
11、 水pre二NULL;node *newp=NULL;while(cur!=NULL)&&(cur->exp<n) pre=cur;cur=cur->next;if (cur! =NULL&&cur->expn)cur->coef=cur->coef+m;elsenewp二new node;newp-coef二m;newp-exp二n;辻(pre二二NULL)newp-next二cur;head=newp;elsepre-next二newp;newp->next=cur;cout«"系數(shù)X-指數(shù)Y(輸入的系數(shù)和指數(shù)都為時,錄入多項式結(jié) 束):"<<endl;cin>>m>>n;return head;/建立一個一元多項式node *addlist (node*A, node*B) /元多項式相加模塊node*pandq:node*p, *q, *pq, *pql;pandq二NULL;p二A;q二B;/把鏈表A和B付給移動指針p和q,同時保護鏈表
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度生物制藥廠房租賃合同及藥品研發(fā)生產(chǎn)服務(wù)協(xié)議3篇
- 科技力量團隊榮耀
- 2025年度精密模具加工委托合同協(xié)議書4篇
- 2025年度柴油發(fā)電機租賃與環(huán)保檢測服務(wù)協(xié)議3篇
- 二零二五年度出租車租賃運營管理承包合同3篇
- 二零二五年度餐飲行業(yè)健康證照辦理服務(wù)合同樣本3篇
- 2025年度產(chǎn)學(xué)研合作知識產(chǎn)權(quán)共享合同2篇
- 專業(yè)鉆掘設(shè)備出租協(xié)議規(guī)范文本一
- 個人租車合同協(xié)議書
- 2025年度廁所清潔能源應(yīng)用與改造合同3篇
- 深圳2024-2025學(xué)年度四年級第一學(xué)期期末數(shù)學(xué)試題
- 中考語文復(fù)習(xí)說話要得體
- 《工商業(yè)儲能柜技術(shù)規(guī)范》
- 華中師范大學(xué)教育技術(shù)學(xué)碩士研究生培養(yǎng)方案
- 醫(yī)院醫(yī)學(xué)倫理委員會章程
- xx單位政務(wù)云商用密碼應(yīng)用方案V2.0
- 風(fēng)浪流耦合作用下錨泊式海上試驗平臺的水動力特性試驗
- 高考英語語法專練定語從句含答案
- 有機農(nóng)業(yè)種植技術(shù)操作手冊
- 【教案】Unit+5+Fun+Clubs+大單元整體教學(xué)設(shè)計人教版(2024)七年級英語上冊
- 2020年的中國海外工程示范營地申報材料及評分標(biāo)準(zhǔn)
評論
0/150
提交評論