棧應用—中綴表達式和後綴表達式轉換(原理和練習題目詳解)

中綴表達式轉後綴表達式

  • 規則:從左到右遍歷中綴表達式的每個數字和符號,如果是數字直接寫出(即成爲後綴表達式的一部分);若是符號,則判斷與棧頂符號的優先級,若是右括號或低於棧頂符號優先級(當是右括號時候,注意輸出的只是左括號以上的符號(乘除優先於加減),那麼棧頂元素依次出棧並輸出,同時將當前符號進棧,一直打到最終輸出爲止。

後綴表達式轉中綴表達式

  • 從左到右遍歷表達式的每個數字和符號,遇到數字就進棧,遇到符號,就將處於棧頂的兩個數字出棧,和符號計算後將運算結果進棧,一直獲得最終結果。
例題1

9 + (3 - 1) * 3 + 10 / 2 = 20

  • 轉爲後綴表達式

在這裏插入圖片描述

所以,轉換完成的後綴表達式是: 9 3 1 - 3 * + 10 2 / +

  • 轉爲中綴表達式
    在這裏插入圖片描述
例題2

中綴表達式:(70 + 30) *20 + 10 / 2 - 3 = 2002
後綴表達式: 70 30 + 20 * 10 2 / + 3 - = 2002

例題3

中綴表達式: 10 * 3 +(3-1)* 2 - 10 / 2 = 29
後綴表達式:10 3 * 3 1 - 2 * + 10 2 / - = 29

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章