免費開始練習
高考申論題 114年 [資訊處理] 資料結構

第 四 題

📖 題組:
二元搜尋樹(binary search tree)是一種常見的資料結構。
📝 此題為申論題,共 4 小題

小題 (四)

以下陣列儲存了一個二元搜尋樹,根節點為 A(1),請列舉可依序插入的五個數值,使得該二元樹成為完整二元樹(full binary tree)。(10 分)

思路引導 VIP

作答此題需先釐清「完整二元樹 (Full Binary Tree)」的定義(國考常指節點數為 2^h-1 的完美二元樹)。接著依據二元搜尋樹「左 < 根 < 右」的性質,推導出應插入的數值範圍,並透過控制插入順序,確保新節點能正確落於陣列的特定索引位置。若遇考卷漏印初始陣列,應主動假設合理情境並詳列推導步驟以爭取分數。

🤖
AI 詳解
AI 專屬家教

【解題思路】利用二元搜尋樹(BST)「左子節點 < 父節點 < 右子節點」性質,配合陣列索引(左子 2i、右子 2i+1)與完整二元樹(節點數 2^h-1)的結構特徵進行推導。 【詳解】 已知:本題未提供初始陣列內容。依據二元樹性質,完整二元樹(Full Binary Tree,依 Horowitz 定義等同 Perfect Binary Tree)的節點總數必為 2^h-1(如 1、3、7、15...)。因題目要求「插入五個數值」,合理推測原樹已有 2 個節點(2+5=7),插入後形成高度為 3、共 7 個節點的完整二元樹。

小題 (一)

請將 50, 30, 70, 20, 40, 60, 80 依序插入一個二元搜尋樹,然後再從該二元樹刪除 50,並畫出每個數字放入或刪除後的二元搜尋樹。(10 分)

思路引導 VIP

掌握二元搜尋樹(BST)的兩大原則:插入時遵循「左小右大」;刪除度數為 2 的節點時,須找「左子樹的最大值(前驅)」或「右子樹的最小值(後繼)」進行替換。繪圖時須一步一步呈現,並在刪除步驟中明確寫出替換依據以獲取高分。

🤖
AI 詳解
AI 專屬家教

【解題思路】運用二元搜尋樹(BST)的特性進行插入與刪除:插入時遵循「小於父節點往左,大於父節點往右」,刪除具備兩個子節點的目標時,以其左子樹的最大值(前驅)或右子樹的最小值(後繼)取代之。 【詳解】 二元搜尋樹插入規則:新節點若大於當前節點則往右,若小於當前節點則往左。

小題 (二)

以下陣列儲存了一個二元搜尋樹,根節點為 A(1),若針對該二元樹刪除 40,請顯示該陣列的變化。(5 分)
i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
A(i) 40 30 70 10 -- 50 90 -- 20 -- -- -- 60 80 -- -- --

思路引導 VIP

首先根據陣列索引規則(左子節點為 2i,右子節點為 2i+1)還原出二元搜尋樹的結構。接著應用二元搜尋樹的刪除規則,刪除具有兩個子節點的根節點 40 時,可選擇以『左子樹最大值』或『右子樹最小值』來遞補,最後計算遞補後各節點的新索引位置並寫出陣列變化。

🤖
AI 詳解
AI 專屬家教

【解題思路】根據二元樹的陣列表示法(左子節點在 $2i$,右子節點在 $2i+1$)還原樹狀結構,並依據二元搜尋樹刪除節點的規則進行替換與節點搬移。 【詳解】 一、還原原始樹結構

小題 (三)

以下陣列儲存了一個二元搜尋樹,根節點為 A(1),若針對該二元樹刪除 30,請顯示該陣列的變化。(5 分)

思路引導 VIP

看到此題,應先聯想以一維陣列表示二元樹的索引規則:若節點位於 A[i],其左子節點為 A[2i],右子節點為 A[2i+1]。接著套用二元搜尋樹 (BST) 刪除節點的三種情況(無子節點、單一子節點、雙子節點),對應計算出陣列中需要被修改或清空的索引位置。

🤖
AI 詳解
AI 專屬家教

【解題思路】運用陣列表示二元樹的索引規則(父節點 i,左子節點 2i,右子節點 2i+1),配合二元搜尋樹的刪除邏輯進行陣列元素的替換與搬移。 【詳解】 (註:因原題目未提供具體陣列內容,本解答將建構一組標準範例陣列以進行邏輯追蹤與推導演示)

🏷️ 相關主題

常見樹狀資料結構:原理、應用與實作
查看更多「[資訊處理] 資料結構」的主題分類考古題

📝 同份考卷的其他題目

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