地特三等申論題
111年
[資訊處理] 資料結構
第 一 題
📖 題組:
常用的算術運算式(Arithmetic Expression)有:中序運算式(Infix Expression)、前序運算式(Prefix Expression)、後序運算式(Postfix Expression)三種表示法,考慮下面的算術運算式(Arithmetic Expression)並回答下列問題: ((6 ×(5 – 3))-(1 + 2))×(((4 + 2)/ 3)+(5 × 4))
常用的算術運算式(Arithmetic Expression)有:中序運算式(Infix Expression)、前序運算式(Prefix Expression)、後序運算式(Postfix Expression)三種表示法,考慮下面的算術運算式(Arithmetic Expression)並回答下列問題: ((6 ×(5 – 3))-(1 + 2))×(((4 + 2)/ 3)+(5 × 4))
📝 此題為申論題,共 3 小題
小題 (一)
請寫出其前序運算式(Prefix Expression)。(5 分)
思路引導 VIP
解題的核心在於確認運算子的優先順序與括號層級。推薦使用「括號法」由內而外將運算子移到對應的左括號前方,或先畫出「運算式語法樹」再進行前序走訪(Preorder Traversal)來求得正確答案。
小題 (二)
請繪出其算術運算樹(Expression Tree)。(5 分)
思路引導 VIP
解析算術運算式的關鍵在於「由外而內,尋找最後執行的運算子」作為當前子樹的根節點。先觀察括號的配對,找出主運算子切分左右子樹,再遞迴進行相同拆解,確保運算元皆為樹葉、運算子皆為內部節點。
小題 (三)
請說明如何以此算術運算樹計算出算術運算式的值,並一步一步列出運算過程。(10 分)
思路引導 VIP
看到此題應先聯想到「算術運算樹(Expression Tree)」的求值過程等同於對樹進行「後序追蹤(Postorder Traversal)」。解題時需說明內部節點為運算子、葉節點為運算元的特性,並展示由下而上(Bottom-up,即由最內層括號開始)逐步求出左右子樹數值,最終推導至根節點的詳細計算步驟。