逆波蘭表達(dá)式唯一嗎 一般算術(shù)表達(dá)式轉(zhuǎn)化為逆波蘭式?
一般算術(shù)表達(dá)式轉(zhuǎn)化為逆波蘭式?表達(dá)式e后綴形式的定義:(1)如果e是變量或常量,則e的后綴形式為e本身;(2)如果e是E1*E2的形式(其中*表示任何二進(jìn)制運(yùn)算),則e的后綴形式為e“1 e”2*,e
一般算術(shù)表達(dá)式轉(zhuǎn)化為逆波蘭式?
表達(dá)式e后綴形式的定義:(1)如果e是變量或常量,則e的后綴形式為e本身;(2)如果e是E1*E2的形式(其中*表示任何二進(jìn)制運(yùn)算),則e的后綴形式為e“1 e”2*,e“1和e”2分別為E1和E2的后綴表達(dá)式;(3) 如果e是(E1)形式的表達(dá)式,那么e的后綴表達(dá)式就是E1的后綴表達(dá)式。所以波蘭語表達(dá)式的倒裝與運(yùn)算符的優(yōu)先級(jí)無關(guān)。具體算法比較困難,要使用DAG圖或三元圖,這是編譯原理中使用較多的。根據(jù)逆波蘭表達(dá)式計(jì)算相對(duì)簡(jiǎn)單。堆棧用于依次將字符串讀入堆棧。遇到運(yùn)算符時(shí),將堆棧頂部的兩個(gè)元素取出進(jìn)行操作,并將操作結(jié)果推入堆棧,直到讀取整個(gè)字符。