![算術(shù)表達(dá)式求值朱亮_第1頁](http://file4.renrendoc.com/view/ad9192b5e00a1f76db02f60c5e6f3e91/ad9192b5e00a1f76db02f60c5e6f3e911.gif)
![算術(shù)表達(dá)式求值朱亮_第2頁](http://file4.renrendoc.com/view/ad9192b5e00a1f76db02f60c5e6f3e91/ad9192b5e00a1f76db02f60c5e6f3e912.gif)
![算術(shù)表達(dá)式求值朱亮_第3頁](http://file4.renrendoc.com/view/ad9192b5e00a1f76db02f60c5e6f3e91/ad9192b5e00a1f76db02f60c5e6f3e913.gif)
![算術(shù)表達(dá)式求值朱亮_第4頁](http://file4.renrendoc.com/view/ad9192b5e00a1f76db02f60c5e6f3e91/ad9192b5e00a1f76db02f60c5e6f3e914.gif)
![算術(shù)表達(dá)式求值朱亮_第5頁](http://file4.renrendoc.com/view/ad9192b5e00a1f76db02f60c5e6f3e91/ad9192b5e00a1f76db02f60c5e6f3e915.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 算術(shù)表達(dá)式求值算法解析 2007級(jí)4班 2009年11月25日1 棧的應(yīng)用算術(shù)表達(dá)式求值 表達(dá)式求值是程序設(shè)計(jì)語言編譯中的一個(gè)最基本問題。它的實(shí)現(xiàn)方法是棧的一個(gè)典型的應(yīng)用實(shí)例。 表達(dá)式都是由操作數(shù)(operand)、運(yùn)算符(operator)和界限符(delimiter)組成的。其中操作數(shù)可以是常數(shù),也可以是變量或常量的標(biāo)識(shí)符;運(yùn)算符是算術(shù)運(yùn)算符( + , - , * , / );界限符為左右括號(hào)和標(biāo)識(shí)表達(dá)式結(jié)束的結(jié)束符。2算術(shù)表達(dá)式的表示方法1. 中綴表達(dá)式運(yùn)算符在操作數(shù)之間如: A * B / C 運(yùn)算規(guī)則:(1) 先計(jì)算括號(hào)內(nèi),后計(jì)算括號(hào)外;(2) 在無括號(hào)或同層括號(hào)內(nèi),先進(jìn)行乘除運(yùn)算
2、,后進(jìn)行加減運(yùn)算,即乘除運(yùn)算的優(yōu)先級(jí)高于加減運(yùn)算的優(yōu)先級(jí);(3) 同一優(yōu)先級(jí)運(yùn)算,從左向右依次進(jìn)行。3用計(jì)算機(jī)來處理中綴表達(dá)式比較復(fù)雜。一個(gè)中綴表達(dá)式中有多少個(gè)運(yùn)算符,原則上就得對表達(dá)式掃描多少遍,才能完成計(jì)算。在編譯系統(tǒng)中,把中綴表達(dá)式轉(zhuǎn)換成另外一種表示方法,即后綴表達(dá)式,然后對后綴式表達(dá)式進(jìn)行處理,后綴表達(dá)式也稱為逆波蘭式。 4 2. 后綴表達(dá)式: 1929 年,由波蘭邏輯學(xué)家(Lukasiewicz)提出。例 A * B / C; A B * C / ; 定義:運(yùn)算符緊跟在兩個(gè)操作數(shù)之后的表達(dá)式叫后綴 表達(dá)式。 優(yōu)點(diǎn): 后綴表達(dá)式?jīng)]有括號(hào) 不存在優(yōu)先級(jí)的差別 計(jì)算過程完全按照運(yùn)算符出現(xiàn)的
3、先后次序 進(jìn)行 5 后綴表達(dá)式求值的方法: 從左到右讀入后綴表達(dá)式,若讀到的是操作 數(shù),將它壓入堆棧。 若讀到的是運(yùn)算符,就從堆棧中連續(xù)彈出兩 個(gè)元素,進(jìn)行相應(yīng)的運(yùn)算,并將結(jié)果壓入棧 中。 讀入結(jié)束符時(shí),棧頂元素就是計(jì)算結(jié)果。6 中綴表達(dá)式 后綴表達(dá)式 a+b a b+ a+b*c a b c *+ a*b*c+c*d a b * c * c d * + (a+b)*(c-d)*e+f) a b + c d e * f + * 例 計(jì)算后綴表達(dá)式ABC*/DE*+AC*-; 7操作 后綴表達(dá)式 棧T2 =A/T1 T2 DE*+AC*- =; T2 DET3 =D*E T2T3 +AC*- =
4、; T2 T3 T4=T2+T3 T4AC*- =; T4ACT5 =A*C T4 T5 - =; T4 T5 T6 =T4- T5 =; T6T1=B*C AT1/DE*+AC*- =; AT1 ABC*/DE*+AC*- =; ABC8后綴表達(dá)式求值的ADL算法:算法EPE ( p, n )EPE1 初始化CREATS ( S ) .EPE2 表達(dá)式求值FOR i=1 TO n DO IF NOT ( ISOPTOR( P i ) THEN S P i ELSE ( y S . x S. S APPLIED(P i , x , y) ) 9中綴表達(dá)式轉(zhuǎn)換成后綴表達(dá)式首先設(shè)定一個(gè)運(yùn)算符棧,用
5、來保存掃描中綴表達(dá)式得到的暫不能放入后綴表達(dá)式中的運(yùn)算符。基本思想:從左到右依次讀出中綴表達(dá)式中的各個(gè)符號(hào)(操作數(shù)或運(yùn)算符),每讀出一個(gè)符號(hào)后,根據(jù)如下運(yùn)算規(guī)則進(jìn)行處理:1. 假如是操作數(shù),將其放入后綴表達(dá)式中;2. 如果是運(yùn)算符,則: (1) ??眨哼\(yùn)算符放入棧中, (2) 棧不空:比較當(dāng)前讀到的運(yùn)算符與棧頂運(yùn)算符的優(yōu)先級(jí)10 1)假如讀出的運(yùn)算符的優(yōu)先級(jí)大于棧頂運(yùn)算符的優(yōu)先級(jí),則將其壓入運(yùn)算符棧,讀中綴表達(dá)式的下一個(gè)符號(hào)。 2)若棧頂運(yùn)算符的優(yōu)先級(jí)比讀到的運(yùn)算符的優(yōu)先級(jí)高或二者相等,彈出棧頂運(yùn)算符放入后綴表達(dá)式中,當(dāng)前讀到的運(yùn)算符入棧; 3)遇到“(”,壓入堆棧; 4)遇到“)”,把“(”上面的操作符依次彈出加到后綴表達(dá)式中,“(”出棧; 3. 假如讀出的是表達(dá)式結(jié)束符“#”,棧中剩余的運(yùn)算符依次出棧并寫入到后綴表達(dá)式中,轉(zhuǎn)換完成。11將(A+B)*(C-D)*E+F)轉(zhuǎn)換成后綴表達(dá)式 AB+CD-E*F+*12(A+B)*(C-D)*E+F)棧 輸出序列 ( A ( A B A B *( A B C *(- A B CD *( A B CD- *(* A B CD- E *( A B CD- E* *( A B CD- E*F * A B CD- E*F+ A B CD- E*F+ *13
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年抗?jié)B碳磚項(xiàng)目可行性研究報(bào)告
- 2025年多槽超聲波清洗機(jī)項(xiàng)目可行性研究報(bào)告
- 2025年印染用助劑項(xiàng)目可行性研究報(bào)告
- 2025年低溫空調(diào)項(xiàng)目可行性研究報(bào)告
- 2025至2030年中國高密度聚乙烯管材數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年鍍前處理酸性除油劑項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年警燈三輪童車項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年福美胂可濕性粉劑項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年火炮半軸模鍛件項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年桿套項(xiàng)目投資價(jià)值分析報(bào)告
- 四年級(jí)語文下冊第六單元【集體備課】(教材解讀+教學(xué)設(shè)計(jì))
- 2024版義務(wù)教育小學(xué)科學(xué)課程標(biāo)準(zhǔn)
- 蘇教版小學(xué)信息技術(shù)五年級(jí)下冊五年級(jí)下冊教案全集
- 學(xué)校托管工作方案
- 腎性高血壓的護(hù)理查房
- 蘇教版八年級(jí)數(shù)學(xué)上冊期末試卷及答案【完美版】
- 法院拍賣議價(jià)協(xié)議書
- 2021年人教版八年級(jí)物理上冊期末考試卷(完美版)
- TB 10009-2016 鐵路電力牽引供電設(shè)計(jì)規(guī)范
- 2024年東南亞雞蛋分級(jí)包裝設(shè)備市場深度研究及預(yù)測報(bào)告
- 2023高考數(shù)學(xué)藝考生一輪復(fù)習(xí)基礎(chǔ)講義(學(xué)生版)
評(píng)論
0/150
提交評(píng)論