




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)結(jié)構(gòu)DataStructuresinC++南京郵電大學(xué)計(jì)算機(jī)學(xué)院2006年9月內(nèi)容提要堆棧和隊(duì)列是兩種最簡(jiǎn)單的線性數(shù)據(jù)結(jié)構(gòu)堆棧抽象數(shù)據(jù)類型(ADT)及其實(shí)現(xiàn)隊(duì)列抽象數(shù)據(jù)類型(ADT)及其實(shí)現(xiàn)堆棧的應(yīng)用:表達(dá)式計(jì)算第3章堆棧和隊(duì)列南京郵電大學(xué)計(jì)算機(jī)學(xué)院2006年9月第3章堆棧和隊(duì)列3.1
堆棧3.2
隊(duì)列3.3
表達(dá)式計(jì)算3.4
遞歸
南京郵電大學(xué)計(jì)算機(jī)學(xué)院2006年9月3.3.1
表達(dá)式表達(dá)式習(xí)慣的書寫形式是一個(gè)雙目運(yùn)算符位于兩個(gè)操作數(shù)之間,如a+b,這類表達(dá)式稱為中綴表達(dá)式。除了雙目運(yùn)算符外,還有單目運(yùn)算符,如I++和-a。條件運(yùn)算符是C/C++語言中惟一的三目運(yùn)算符。
南京郵電大學(xué)計(jì)算機(jī)學(xué)院2006年9月南京郵電大學(xué)計(jì)算機(jī)學(xué)院2006年9月3.3.2計(jì)算后綴表達(dá)式的值642-/32*+#6426234-2=2,6/2=3332363*2=696+3=9南京郵電大學(xué)計(jì)算機(jī)學(xué)院2006年9月后綴表達(dá)式求值算法:(1)從左往右順序掃描后綴表達(dá)式;(2)遇到操作數(shù)就進(jìn)棧;(3)遇到操作符就從棧中彈出兩個(gè)操作數(shù),并執(zhí)行該操作符規(guī)定的運(yùn)算;并將結(jié)果進(jìn)棧;(4)重復(fù)上述操作,直到表達(dá)式結(jié)束。彈出棧頂元素即為結(jié)果。南京郵電大學(xué)計(jì)算機(jī)學(xué)院2006年9月南京郵電大學(xué)計(jì)算機(jī)學(xué)院2006年9月classCalculator{public:Calculator(intmaxSize):S(maxSize){};
voidRun(); //從輸入流逐個(gè)讀入字符,做相應(yīng)的運(yùn)算,輸出結(jié)果voidClear(){s.Clear();}南京郵電大學(xué)計(jì)算機(jī)學(xué)院2006年9月private:SeqStack<double>s;//存放操作數(shù)的棧對(duì)象voidPushOperand(double);//操作數(shù)進(jìn)棧//從棧中彈出2個(gè)操作數(shù)boolGetOperands(double&,double&); //根據(jù)操作符做相應(yīng)的運(yùn)算voidDoOperator(char); };南京郵電大學(xué)計(jì)算機(jī)學(xué)院2006年9月voidCalculator::PushOperand(doubleop){s.Push(op);}南京郵電大學(xué)計(jì)算機(jī)學(xué)院2006年9月boolCalculator::GetOperands(double&op1,double&op2){if(!s.Top(op1)){cerr<<"Missingoperand!"<<endl;returnfalse;}s.Pop();if(!s.Top(op2)){cerr<<"Missingoperand!"<<endl;returnfalse;}s.Pop();returntrue;}南京郵電大學(xué)計(jì)算機(jī)學(xué)院2006年9月voidCalculator::DoOperator(charoper){boolresult;doubleoper1,oper2;result=GetOperands(oper1,oper2);//取兩個(gè)操作數(shù)
南京郵電大學(xué)計(jì)算機(jī)學(xué)院2006年9月if(result)//執(zhí)行操作符oper指定的運(yùn)算
switch(oper){//oper2(oper)oper1case'+':s.Push(oper2+oper1);break;case'-':s.Push(oper2-oper1);break;case'*':s.Push(oper2*oper1);break;case‘/’:if(fabs(oper1)<1e-6){//絕對(duì)值 cerr<<"Divideby0!"<<endl;Clear();}elses.Push(oper2/oper1);break;case'^':s.Push(pow(oper2,oper1));break;
}elseClear();}南京郵電大學(xué)計(jì)算機(jī)學(xué)院2006年9月
voidCalculator::Run(){charc;doublenewop;while(cin>>c,c!='#'){switch(c){//讀入的字符做如下處理case'+':case'-':case'*':case'/':case‘^’:DoOperator(c);break;//操作符default:cin.putback(c); //操作數(shù)進(jìn)棧cin>>newop; PushOperand(newop);break; }}
南京郵電大學(xué)計(jì)算機(jī)學(xué)院2006年9月if壟(S告.T雷o(hù)p蘋(ne浩wo期p))co巖ut<<ne優(yōu)wo尾p<<en堤dl;//取棧裁頂元煙素,截得結(jié)芝果輸較出}南京南郵電宗大學(xué)旦計(jì)算墻機(jī)學(xué)懂院贈(zèng)20耀06延年9循月3.襲3.飲3危中綴舟表達(dá)典式轉(zhuǎn)朝換為陶后綴侍表達(dá)流式只考付慮左艘結(jié)合蜂的雙覽目運(yùn)棍算。新每按個(gè)表訴達(dá)式矮以“煙#”妥號(hào)作景為表獄達(dá)式銷結(jié)束陷標(biāo)記皇。輸入理中綴超表達(dá)罰式由運(yùn)召算符份、操蝕作數(shù)殃、‘赴)’肚和‘尖#’樹四種護(hù)不同鄰類鴿型的項(xiàng)組成瓦的序語列輸出后綴儀表達(dá)己式南京哪郵電爺大學(xué)腸計(jì)算波機(jī)學(xué)爛院除20臭06摧年9趁月棧內(nèi)罪優(yōu)先圣級(jí)is極p(i朝n-歷st哄ac攤k腎pr需io進(jìn)ri甘ty桶)棧外繳優(yōu)先紅級(jí)ic居p(i墓nc驕om輕in貞g醬pr掀io賣ri箭ty)對(duì)未鋼進(jìn)棧射的左妨括號(hào)吼賦以脆最高尿優(yōu)先蒙級(jí),尋對(duì)已剃進(jìn)??档淖笠砝ㄌ?hào)嘆賦以涼最低門優(yōu)先有級(jí)。假定蠟表達(dá)下式的輪語法考正確蠶性檢額查已掃在表猶達(dá)式寒轉(zhuǎn)換箱之前渾完成概。南京殖郵電頸大學(xué)曠計(jì)算身機(jī)學(xué)付院萄20洋06鋤年9蛇月南京谷郵電功大學(xué)訪計(jì)算夫機(jī)學(xué)修院取20揭06終年9挑月南京瞇郵電祥大學(xué)忍計(jì)算塌機(jī)學(xué)誼院邁20情06岔年9粘月南京壞郵電烤大學(xué)稍計(jì)算亂機(jī)學(xué)絲式院松20立06巧年9綠月南京貿(mào)郵電饞大學(xué)炭計(jì)算范機(jī)學(xué)紫院饅20礙06恢年9俯月(1押)從歉左到調(diào)右逐憑個(gè)掃譯描中漏綴表鋪達(dá)式栗中各殲項(xiàng),辛遇到鋪結(jié)束松符#勇轉(zhuǎn)(燈6)肺,否貨則繼窩續(xù);(2怪)遇梅到操賢作數(shù)辣直接適輸出抱;(3綁)若端遇到正右括田號(hào)“席)”椒,則弦連續(xù)溝出棧導(dǎo)輸出宿,直政至遇穩(wěn)到左歇括號(hào)后“(葵”為劑止(爛注意久:左促括號(hào)揮出棧查但并吉不輸左出)滑,否蠻則繼叛續(xù);(4容)若昂是其幻玉他操灶作符葬,則割和棧顛頂?shù)目v操作無符比司較優(yōu)難先級(jí)遷,若囑小于送棧頂品操作銅符的不優(yōu)先竄級(jí),訓(xùn)則連欣續(xù)出欠棧輸虜出,雪直到羨大于化等于莊棧頂盜操作窗符的宜優(yōu)先廉級(jí)結(jié)引束,眠操作渠符進(jìn)躁棧;(5框)轉(zhuǎn)約(1搭)繼煙續(xù);(6期)輸兇出棧贏中剩作余操功作符退(#樓除外泰)。南京乳郵電艦大學(xué)刻計(jì)算柿機(jī)學(xué)押院數(shù)20禿06液年9么月in叨t僅ic賓p(c來ha番r半c){督/栗/計(jì)算匙運(yùn)算肯符c的棧伐外優(yōu)打先級(jí)in帝tpr蛋io擴(kuò)ri腳ty唐;sw兩it嬌ch吉(c耳){ca含se溉'啊('布:英pr障io太ri郵ty卵=7袖;腹br鋪ea貓k;ca榨se石'乳+'灘:ca聚se激'經(jīng)-'瞧:皺pr俘io蘋ri兄ty多=2濾;突br膜ea希k;ca晉se娘'于*'弟:ca梯se腳'宴/'敏:顧pr片io疊ri描ty芝=4捧;耀br支ea喚k;ca最se叢'蜘#'瞧:衰pr他io啊ri拼ty版=0釋;挪br配ea癢k;}re狀tu錢rn抱p熄ri秒or刪it秧y;}南京女郵電優(yōu)大學(xué)第計(jì)算雅機(jī)學(xué)悅院會(huì)20志06跪年9希月vo珍idIn斥fi掛xT走oP噴os鐮tf街ix(){Se堆qS炕ta莖ck<c娘ha認(rèn)r>征s兇(S罵IZ嗚E)縣;ch著arch,y禍;薪s.靜Pu題sh傷('光#'詢);wh哈il護(hù)e戰(zhàn)(ci羊n>>ch,ch!=蒼'#傻')拔{if倍(is掃di凈gi潤(rùn)t(ch)|影|is之a(chǎn)l昂ph戒a(ch))co屑ut<<ch;//輸出斜操作唐數(shù)el宋se橋i鏟f禁(ch=虜='橫)'事)fo堆r(殲s.某To醉p(正y)轎,泡s.勉Po懼p(辭);y!摘='尤('蛙;s.裙To看p(希y)宏,育s.覺Po栗p(痕))co爆ut<<左y;el菜se答{fo花r吧(s橡.T劣op侄(y梅),忠s.只Po謠p(千);ic現(xiàn)p(ch)<is殼p(y兩);s.出To鹿p(希y)蹄,s斤.P徹op脖()桃)co手ut<<興y蓋;s.糞Pu敬sh禿(y丙);傳s癢.P龍us林h(ch);}}南京啟郵電苗大學(xué)擾計(jì)算郵機(jī)學(xué)觀院瀉20沃
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ùn)從業(yè)資格證題庫(kù)答案
- 2025年咸陽從業(yè)資格證模擬考試題貨運(yùn)考題
- 食品衛(wèi)生安全法律法規(guī)知識(shí)梳理
- 2025年龍巖貨運(yùn)從業(yè)資格證模擬考試題庫(kù)下載
- 新民事證據(jù)規(guī)定的理解與適用
- 抖音運(yùn)營(yíng)合作協(xié)議合同
- 項(xiàng)目進(jìn)度調(diào)整及應(yīng)對(duì)策略報(bào)告書
- 語言文字應(yīng)用技巧指導(dǎo):小學(xué)漢字書寫教學(xué)方案
- 2025年安徽中澳科技職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)必考題
- 2025年巴中職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性考試題庫(kù)及參考答案
- 生物-湖北省鄂東新領(lǐng)先協(xié)作體2025屆高三下學(xué)期2月調(diào)考(二模)試題和答案
- 6 千人糕 教學(xué)設(shè)計(jì)-2023-2024學(xué)年語文二年級(jí)下冊(cè)統(tǒng)編版
- 社會(huì)問題(第三版)課件匯 向德平 第1-7章 社會(huì)問題概述 - 人口問題
- 深圳2025年廣東深圳市公辦中小學(xué)招聘事業(yè)單位工作人員178人筆試歷年參考題庫(kù)附帶答案詳解
- 7 鹿角和鹿腿 第二課時(shí) 公開課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)
- 2025屆高考化學(xué)二輪復(fù)習(xí):晶胞的相關(guān)性質(zhì)及計(jì)算(含解析)
- 2024年沙洲職業(yè)工學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試歷年參考題庫(kù)含答案解析
- 2024年山東鋁業(yè)職業(yè)學(xué)院高職單招數(shù)學(xué)歷年參考題庫(kù)含答案解析
- 2024年山東勞動(dòng)職業(yè)技術(shù)學(xué)院高職單招語文歷年參考題庫(kù)含答案解析
- 融合智慧數(shù)據(jù)的圖書館數(shù)智服務(wù)平臺(tái)研究
- 員工外宿免責(zé)協(xié)議書(2篇)
評(píng)論
0/150
提交評(píng)論