LONGEPASS
Q177.

將右列堆積(Heap)[ 20 15 17 10 12 5 16 7 3 11],依序新增14、18 後,所形成的堆積,下列何者正確?

電腦軟體設計共同科目 · 乙級 · Q177

難易度分析

4 / 5

本題要求對資料結構進行多步驟的動態操作,需精確模擬元素插入後的路徑調整過程,並判斷父子節點間的數值關係,屬於需要實際演算法推演的計算型題目。

正確答案:④[20 15 18 10 14 17 16 7 3 11 12 5]

④ [20 15 18 10 14 17 16 7 3 11 12 5]:正確答案。插入 14 時,14 大於父節點 12 故交換位置;插入 18 時,18 依序大於父節點 5 與 17,連續執行兩次 向上調整(Up-Heap),最終形成符合最大堆積性質的陣列結構。

錯誤選項解析

  • ① [20 15 17 10 14 5 16 7 3 11 12 18]:此選項僅將 14 插入原堆積位置,但 18 直接置於陣列末尾而未執行 向上調整(Up-Heap / Bubble-Up) 運算,違反最大堆積的父子節點大小關係。
  • ② [20 15 18 10 12 17 16 7 3 11 14 5]:此選項中 18 的向上調整路徑正確(18 取代 17 的位置),但 14 插入後未與父節點 12 進行交換調整,導致 14 仍停留在錯誤的葉節點位置,不符合堆積插入演算法。
  • ③ [20 15 17 10 12 5 16 7 3 11 14 18]:此選項完全未執行任何 堆積調整(Heapify) 操作,僅將 14 與 18 依序附加於陣列末端,屬於單純的陣列追加而非堆積插入,完全破壞最大堆積的結構特性。
Learning Tip

"本題核心考點為 最大堆積(Max-Heap)的插入與向上調整(Up-Heap / Bubble-Up)機制。常見陷阱是誤以為新元素直接附加於陣列末尾即可,忽略了插入後必須從葉節點沿路徑與父節點比較並交換,直到滿足堆積性質為止。另一易混淆點是 堆積為完全二元樹(Complete Binary Tree),陣列索引與父子節點關係為:父節點索引 = (子節點索引 - 1) / 2,務必熟記此映射關係以正確追蹤調整路徑。"

學員答題分佈

①[20 15 17 10 14 5 16 7 3 11 12 18]0%
②[20 15 18 10 12 17 16 7 3 11 14 5]0%
③[20 15 17 10 12 5 16 7 3 11 14 18]0%
④[20 15 18 10 14 17 16 7 3 11 12 5]0%

此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!

相似類型題目