免費開始練習
調查局三等申論題 109年 [電子科學組] 計算機概論

第 一 題

📖 題組:
本題有關二元樹與算術運算式。
📝 此題為申論題,共 2 小題

小題 (一)

某一個算術運算式(arithmetic expression)利用二元樹(binary tree)做後序拜訪(postorder traversal),轉換成後序式(postfix)為:A B C / D – E * + F G / –,其中 A、B、C、D、E、F、G 代表運算元(operand),+(加)、–(減)、*(乘)、/(除)代表運算子(operator)。如果該算術運算式帶入 A=5, B=6, C=2, D=3, E=2, F=9, G=3,則計算結果的值是多少?(15分)

思路引導 VIP

看到「後序式(Postfix)的數值計算」,應立刻聯想到使用「堆疊(Stack)」資料結構來解題。解題核心為:由左至右讀取字元,遇到運算元(數字)即推入堆疊(Push),遇到運算子則從堆疊彈出(Pop)兩個數值進行計算(注意先彈出的是右運算元,後彈出的是左運算元),再將結果推回堆疊,最後留在堆疊內的數值即為解答。

🤖
AI 詳解
AI 專屬家教

【解題關鍵】利用「堆疊(Stack)」資料結構,由左至右掃描後序式,遵循「遇運算元推入(Push)、遇運算子彈出(Pop)計算後再推入」之原則。 【解答】 已知後序運算式:A B C / D – E * + F G / –

小題 (二)

已知某二元樹有3個節點,且該二元樹經後序拜訪的輸出結果依序是 C、B、A。請列出所有滿足上述條件的二元樹。(10分)

思路引導 VIP

看到此題,應先聯想後序走訪(Postorder)的順序為「左子樹、右子樹、根節點」,因此輸出序列最後的 A 必定是整棵樹的根節點。接著利用卡塔蘭數(Catalan number)算出 3 個節點的二元樹共有 5 種形狀,依序將 C、B、A 填入並驗證,即可窮舉所有答案。

🤖
AI 詳解
AI 專屬家教

【解題思路】利用二元樹後序走訪(左、右、根)的特性判斷根節點,並結合卡塔蘭數(Catalan Number)窮舉 3 個節點的所有可能樹形。 【詳解】 已知:二元樹包含 3 個節點,後序走訪(Postorder Traversal)輸出結果依序為 C、B、A。

升級 VIP 解鎖