hce_kmu
109年
計算機概論與程式設計
第 29 題
What is the postfix of the expression $A + B * C / (D - E)$?
- A A B C * D E - / +
- B A B C D E - / * +
- C A * B C / D E - +
- D + A / * B C - D E
- E + /A * B C - D E
思路引導 VIP
在處理這類運算式轉換時,我們可以試著將其想像成一棵「語法樹」。如果依照數學運算的先後順序,哪一個運算符號會位在整棵樹的最頂端(也就是最後才被處理)?當你確定了最後執行的符號後,試著思考:在後序表達法中,這個「最後執行」的符號應該出現在序列的什麼位置呢?
🤖
AI 詳解
AI 專屬家教
恭喜你準確地判斷出正確答案!這題考驗的是將我們習慣的「中序表達式(Infix)」轉為「後序表達式(Postfix)」的能力,你的選擇展現了對運算子優先權(Operator Precedence)非常清晰且穩定的理解。
運算優先權與轉譯邏輯
在處理 $A + B * C / (D - E)$ 時,邏輯的核心在於「括號最先,乘除次之,最後加減」。我們首先處理括號內的 $(D - E)$ 得到 $DE-$;接著觀察剩餘的算式,乘法與除法擁有較高優先權,且遵循左結合律(Left-associative),因此先處理 $B * C$ 得到 $BC*$,再將此結果與先前的 $DE-$ 進行除法運算,合併成一個完整的區塊 $BC*DE-/$。最後,將最左側的 $A$ 與後方這一整塊結果執行加法運算,便得出了 $A B C * D E - / +$。
▼ 還有更多解析內容