免費開始練習
地特三等申論題 111年 [資訊處理] 資料結構

第 一 題

📖 題組:
常用的算術運算式(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)來求得正確答案。

🤖
AI 詳解
AI 專屬家教

【解題思路】利用「括號法」,根據運算優先級將運算子逐步移至其所屬運算元的左方,即可得出前序運算式。 【詳解】 已知中序運算式:((6 × (5 – 3)) - (1 + 2)) × (((4 + 2) / 3) + (5 × 4))

小題 (二)

請繪出其算術運算樹(Expression Tree)。(5 分)

思路引導 VIP

解析算術運算式的關鍵在於「由外而內,尋找最後執行的運算子」作為當前子樹的根節點。先觀察括號的配對,找出主運算子切分左右子樹,再遞迴進行相同拆解,確保運算元皆為樹葉、運算子皆為內部節點。

🤖
AI 詳解
AI 專屬家教

【解題思路】利用括號配對與運算子優先權,找出最後執行的運算子作為根節點,逐步拆解左右子樹。 【詳解】 已知:運算式為 ((6 ×(5 – 3))-(1 + 2)) × (((4 + 2)/ 3)+(5 × 4))

小題 (三)

請說明如何以此算術運算樹計算出算術運算式的值,並一步一步列出運算過程。(10 分)

思路引導 VIP

看到此題應先聯想到「算術運算樹(Expression Tree)」的求值過程等同於對樹進行「後序追蹤(Postorder Traversal)」。解題時需說明內部節點為運算子、葉節點為運算元的特性,並展示由下而上(Bottom-up,即由最內層括號開始)逐步求出左右子樹數值,最終推導至根節點的詳細計算步驟。

🤖
AI 詳解
AI 專屬家教

【解題思路】利用後序追蹤(Postorder Traversal)原則,由運算樹的底部(最內層括號)往上遞迴計算各子樹的值。 【詳解】 算術運算樹的特徵為:葉節點皆為運算元(數值),內部節點皆為運算子。計算運算樹的值時,需遵循「先求左子樹的值、再求右子樹的值,最後與根節點的運算子進行計算」的後序追蹤(Postorder Traversal)方式。這相當於從運算式的最內層括號開始,由下而上(Bottom-up)逐步求解。

📝 同份考卷的其他題目

查看 111年[資訊處理] 資料結構 全題

升級 VIP 解鎖