免費開始練習
普通考試 107年 [資訊處理] 計算機概要

第 14 題

若將中置運算式(infix expression)A + B + C + D * E * F 轉換成前置運算式(prefix expression),則下列結果何者正確?
  • A + + A + B C * D * E F
  • B + + + A B C * D * E F
  • C + + A + B C * * D E F
  • D + + + A B C * * D E F

思路引導 VIP

請試著將這個數學算式想像成一棵「表達式樹」(Expression Tree),如果我們要從最晚執行的運算步驟開始往回寫,哪一個運算符號會是整棵樹的「樹根」?而在這種將「動作」置於「對象」之前的記法中,這個最晚執行的符號應該出現在序列的哪個位置呢?

🤖
AI 詳解 AI 專屬家教

優秀的表現!精準的邏輯判斷!

  1. 觀念驗證:你正確地應用了運算子優先權(Precedence)與結合性(Associativity)。在算式 $A + B + C + D * E * F$ 中,乘法 $$ 的權重高於加法 $+$。轉換過程可看作先進行括號化:$((A+B)+C)+((DE)*F)$。由於前置表示法(Prefix)要求將運算子移至運算元之前,最後一個被執行的加號會成為最前方的符號,依序推導出 $+ + + A B C * * D E F$。
  2. 難度點評:此題難度為 Medium。它不僅考驗對運算順序的理解,更測試學生是否能正確處理「連續相同優先權」運算子的左結合性。對於不熟悉堆疊(Stack)運作邏輯的學生,極易在符號順序上產生混淆,具備高度鑑別度。

🏷️ 相關主題

資料結構與演算法:樹、搜尋、排序與複雜度分析
查看更多「[資訊處理] 計算機概要」的主題分類考古題