国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

利用棧計(jì)算表達(dá)式的值 By Assassin

2019-11-10 19:32:07
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

假設(shè)算術(shù)表達(dá)式只包含”+”、“-”、“*”、“/”、正整數(shù)和括號(hào)的合法數(shù)學(xué)表達(dá)式,求算術(shù)表達(dá)式值。

過(guò)程是利用了先將算術(shù)表達(dá)式(中綴表達(dá)式)轉(zhuǎn)換成后綴表達(dá)式,然后對(duì)后綴表達(dá)式求值! 具體的中綴表達(dá)式和后綴表達(dá)式是什么可以參考 http://www.bkjia.com/cjjc/1170210.html 的前一部分。

(一)具體的中綴表達(dá)式轉(zhuǎn)換成后綴表達(dá)式的法則:

1.遇到操作數(shù)直接輸出 2.若遇到右括弧“)”,則連續(xù)出棧輸出,直到遇到左括弧“(”為止。其中,左括弧出棧但是并不輸出 3.若是其他操作符,則和棧頂?shù)牟僮鞣容^優(yōu)先級(jí),若小于等于棧頂操作符的優(yōu)先級(jí),則連續(xù)出棧輸出,直到某一位的優(yōu)先級(jí)值大于棧頂操作符的優(yōu)先級(jí)結(jié)束,操作符進(jìn)棧; 4.輸出棧中剩余的操作符。

實(shí)現(xiàn)這個(gè)轉(zhuǎn)換的關(guān)鍵是確定操作符的優(yōu)先級(jí),因?yàn)閮?yōu)先級(jí)決定操作符是否進(jìn)棧和出棧,同時(shí)操作符在棧內(nèi)外的優(yōu)先級(jí)不同,換種說(shuō)法,符號(hào)入棧前有個(gè)比較的時(shí)候按照棧外值查表,但凡已經(jīng)在棧內(nèi)的需要按棧內(nèi)表查!?。。ㄔ酱笤礁撸?/strong>

棧外:

符號(hào) ( *和/ +和- )
7 5 3 1

棧內(nèi):

符號(hào) ( *和/ +和- )
1 5 3 7

不要糾結(jié)上面值大小,其實(shí)只是為了分辨一下優(yōu)先級(jí)罷了。

(二)后綴表達(dá)式計(jì)算的法則: 從左往右掃描后綴表達(dá)式,遇到操作數(shù)就進(jìn)棧,遇到操作符就從棧中彈出兩個(gè)操作數(shù),執(zhí)行相應(yīng)的運(yùn)算,并將結(jié)果進(jìn)棧。如此下去,直到遇到結(jié)尾符#結(jié)束,彈出的棧頂元素就是結(jié)果。注意這里只討論雙目運(yùn)算符,在彈出的兩個(gè)操作數(shù)棧,先出棧的放在操作符的右邊,后出棧的放在左邊。

然后給大家一道例題:藍(lán)橋杯 表達(dá)式計(jì)算原題鏈接

具體的實(shí)現(xiàn)可以看我的博客如下: 藍(lán)橋杯題目解答


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 兴义市| 建阳市| 十堰市| 噶尔县| 麦盖提县| 高要市| 鄂托克前旗| 通化市| 铜川市| 湖南省| 施秉县| 香格里拉县| 监利县| 普兰店市| 淄博市| 怀宁县| 金溪县| 芮城县| 桓仁| 荣昌县| 芜湖县| 西乌珠穆沁旗| 临猗县| 会昌县| 舒城县| 太仆寺旗| 青川县| 衡南县| 怀远县| 通州区| 时尚| 泽州县| 建昌县| 常宁市| 唐山市| 大冶市| 滕州市| 浦东新区| 冷水江市| 丁青县| 达孜县|