資料結構與演算法
以逆波蘭表示法(後序式)寫成的算式「3 4 + 2 * 5 −」,用「遇到數字就推入堆疊,遇到運算子就取出2個值計算並推入結果」的方法求值。結果為多少?其中運算子左側的值是先推入的那一個。
- A−9
- B6
- C9
查看答案與解析
正確答案:C. 9
推入3、4,以 + 取出並推入 3 + 4 = 7。接著推入2,以 * 推入 7 × 2 = 14。推入5,以 − 從先推入的14減去後推入的5,得到 14 − 5 = 9。後序式的運算順序由排列決定,因此不需要括號,相當於一般算式的 (3 + 4) × 2 − 5。−9 是弄反減法左右的值,6 則是不加括號讀成 3 + 4 × 2 − 5 的值。
- A. 這是把減法的左右弄反成 5 − 14 的值。左側是先推入的14。
- B. 這是當作沒有括號的 3 + 4 × 2 − 5 計算的值。在後序式中 + 會先計算。
- C. 正確。(3 + 4) × 2 − 5 = 9。