前、中、字尾表示式
南故笙煙 發表于 娛樂2019-07-30
#字首表示式(波蘭表示式)
字首表示式又稱為波蘭式,字首表示式的運算子位於運算元之前
舉例:(3+4)*5-6對應的波蘭式是-*+3456
字首表示式的計算求值
從右到左掃描表示式,將數字壓入堆疊
遇到運算子時,彈出棧頂的兩個數,進行運算
注意順序為:棧頂元素 -運算子->次頂元素
並將結果入棧;重複上述過程直到表示式最右端
最後運算得出的值即為最終結果
例如 (3+4)*5-6
對應的波蘭式是-*+3456
從右向左掃描得6 5 4 3 ,入棧
遇到+,彈出3 4 得7,7入棧
遇到* ,彈出7 5 得35,35入棧
遇到- ,彈出35 6 得29,29即為最終結果
#中綴表示式
就是常見的運算表示式
人最熟悉中綴表示式,但計算機最難處理中綴表示式,所以往往將中綴表示式改為字尾表示式
例如(3+4)*5-6就是一箇中綴表示式
#字尾表示式(逆波蘭表示式)
與字首表示式類似,只是運算子位於運算元之後
例如(3+4)*5-6的逆波蘭表示式是34+5*6-
還有很多例子
字尾表示式的計算求值
從左往右掃描表示式,遇到數字時,將數字壓入堆疊
遇到運算子時,彈出棧頂的兩個數,計算
注意順序:次頂元素 -處理->棧頂元素
並將結果入棧,重複上述過程直到表示式最右端
最後結果即為計算結果