字首中綴字尾表示式規則

victorfengming發表於2021-03-04

字首表示式(波蘭表示式)

  1. 字首表示式又稱波蘭式,字首表示式的運算子位於運算元之前
  2. 舉例說明: (3+4)×5-6 對應的字首表示式就是 - × + 3 4 5 6

字首表示式求值

字首表示式的計算機求值

從右至左掃描表示式,遇到數字時,將數字壓入堆疊,遇到運算子時,彈出棧頂的兩個數,用運算子對它們做相應的計算(棧頂元素 和 次頂元素),並將結果入棧;重複上述過程直到表示式最左端,最後運算得出的值即為表示式的結果

例如: (3+4)×5-6 對應的字首表示式就是 - × + 3 4 5 6 , 針對字首表示式求值步驟如下:

  • 從右至左掃描,將6、5、4、3壓入堆疊
  • 遇到+運算子,因此彈出34(3為棧頂元素,4為次頂元素),計算出3+4的值,得7,再將7入棧
  • 接下來是×運算子,因此彈出75,計算出7×5=35,將35入棧
  • 最後是-運算子,計算出35-6的值,即29,由此得出最終結果

中綴表示式

中綴表示式

中綴表示式就是常見的運算表示式,如(3+4)×5-6

中綴表示式的求值是我們人最熟悉的,但是對計算機來說卻不好操作(前面我們講的案例就能看的這個問題),因此,在計算結果時,往往會將中綴表示式轉成其它表示式來操作(一般轉成字尾表示式.)

中綴表示式對於我們人來好搞,計算機他算不算明白,就離譜

計算機不知道怎麼算這個優先順序

字尾表示式(逆波蘭表示式)

字尾表示式

字尾表示式又稱逆波蘭表示式,與字首表示式相似,只是運算子位於運算元之後

中舉例說明: (3+4)×5-6 對應的字尾表示式就是 3 4 + 5 × 6 –

再比如:

正常的表示式 逆波蘭表示式
a+b a b +
a+(b-c) a b c - +
a+(b-c)*d a b c – d * +
a+d*(b-c) a d b c - * +
a=1+3 a 1 3 + =

字尾表示式的計算機求值

從左至右掃描表示式,遇到數字時,將數字壓入堆疊,遇到運算子時,彈出棧頂的兩個數,用運算子對它們做相應的計算(次頂元素 和 棧頂元素),並將結果入棧;重複上述過程直到表示式最右端,最後運算得出的值即為表示式的結果

例如: (3+4)×5-6 對應的字尾表示式就是 3 4 + 5 × 6 - , 針對字尾表示式求值步驟如下:

  1. 從左至右掃描,將3和4壓入堆疊;
  2. 遇到+運算子,因此彈出4和3(4為棧頂元素,3為次頂元素),計算出3+4的值,得7,再將7入棧;
  3. 將5入棧;
  4. 接下來是×運算子,因此彈出5和7,計算出7×5=35,將35入棧;
  5. 將6入棧;
  6. 最後是-運算子,計算出35-6的值,即29,由此得出最終結果
本作品採用《CC 協議》,轉載必須註明作者和本文連結
秋葉夏風

相關文章