后綴表達式/逆波蘭表達式

后綴表達式/逆波蘭表達式

運算表達式的種類

  • a + b:中綴表達式 (Infix Notation),原因是運算符號在兩個運算對象的中間。
  • + - a * b c d:前綴表達式 (Prefix Notation),運算符在運算對象前面,又稱為波蘭表達式。
  • a b c * - d +:后綴表達式 (Prefix Notation),運算符在運算對象后面,又稱為逆波蘭表達式。

后綴表達式的優點

  • 相較于前綴表達式更易于轉換,最左邊一定為數字。
  • 不用括號,依靠運算順序確定運算符的優先級
  • 更符合計算機的計算方式。計算機通過從左至右讀取后綴表達式,就可以將遇到的運算對象壓入棧,在遇到運算符時就彈出兩個運算對象,完成計算,再將結果壓入棧。最后留在棧中的就是計算結果。

中綴表達式轉換為后綴表達式的方法

a + b * c - (d + e)

  1. 按照運算符的優先級對所有的運算單位加括號。

    ((a + (b * c)) - (d + e))

  2. 轉換中綴與后綴表達式后綴:把運算符號移動到對應的括號后面。

    ((a (b c) * ) + (d e) + ) -

  3. 把括號去掉,記得到了后綴表達式

    a b c * + d e + -

可以發現,后綴表達式是不需要括號來調整運算優先級的。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容