什麼是字尾表示法?


在後綴表示法中,運算子出現在運算元之後,即運算子與運算元之間的運算子被取出並附加到運算元之後。

示例1 − 將 a ∗ d − (b + c) 轉換為字尾形式。

解決方案

ad ∗ bc + −

示例2 − 將 a + (b ∗⊝ c) 轉換為字尾形式。

解決方案

這裡 ⊝ 表示一元減運算子。

a b c ⊝ ∗ +

示例3 − 使用棧實現將字尾表示式轉換為中綴表示式

a d ∗ bc + −

解決方案

字串符號
ad ∗ bc + −
AA
Dad
*(a * d)
B(a * d)b
C(a * d)b c
+(a ∗ d)(b + c)
-(a ∗ d)-(b + c)

示例4 − 計算字尾表示式的值。

57 + 2 ∗ 3/

解決方案

可以使用棧來評估此表示式。每個符號可以按順序插入,並且運算子可以應用於位於棧頂部的運算元及其旁邊的運算元。

符號描述
55
75 75 + 7
+12
212 2
*2412 * 2
324 3
/824/3

∴ 答案是 8。

控制語句中使用的字尾表示法

  • 跳轉 − 跳轉到標籤 𝑙 可以用字尾表示法寫成 −

                                         𝑙jump

  • jlt(如果小於則跳轉) − e1 e2 𝑙 jlt 如果 e1 的值小於 e2,則跳轉到標籤。


  • jeqz(如果等於零則跳轉) − e 𝑙 jeqz 如果 e 的值為零,則跳轉到 𝑙。


示例5 − 將以下語句轉換為字尾表示法。

if e then x else y

解決方案

If − else 語句可以寫成

If e then

   x

else

𝑙1: y

𝑙2: exit

字尾表示法將是

示例6 − 將表示式轉換為字尾表示法。

if a then if c + d then a + c else a * c else a + b.

解決方案

它可以寫成

if a then

      if c + d then

            a + c

           else

                a * c

      𝑙1

      else

      𝑙2: a + b

      𝑙3: exit

更新於: 2021年11月3日

18K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告