問題詳情

3. 依序輸入六筆資料,請問下列何者所建立的二元搜尋樹(Binary Search Tree)層數為最少?
(A) 20, 50, 60, 90, 100, 120
(B) 60, 50, 100, 90, 20, 120
(C) 120, 100, 90, 60, 50, 20
(D) 90, 20, 100, 60, 50, 120

參考答案

答案:B
難度:簡單0.75
書單:沒有書單,新增

用户評論

【用戶】不叫賭俠的陳小刀

【年級】高三下

【評論內容】建立 Binary Search Tree 的時候,每次插入的節點都會與樹根進行比較,根據大小決定往左或往右子樹進行遞迴操作。因此,樹的形狀取決於輸入資料的順序。由於這題要求建立的二元搜尋樹層數最少,因此我們可以從樹的形狀的角度出發,選擇最平衡的樹形。一般而言,最平衡的二元搜尋樹是滿二元樹,也就是每個節點都有兩個子節點的二元樹。如果要建立含有 $n$ 個節點的滿二元樹,其深度為 $lfloorlog_2 n floor + 1$。以下為各個選項建立二元搜尋樹後的形狀:ABCD因此,選項 (B) 所建立的二元搜尋樹層數最少,為 $lfloorlog_2 6 floor + 1 = 3$ 層。

【用戶】不叫賭俠的陳小刀

【年級】高三下

【評論內容】建立 Binary Search Tree 的時候,每次插入的節點都會與樹根進行比較,根據大小決定往左或往右子樹進行遞迴操作。因此,樹的形狀取決於輸入資料的順序。由於這題要求建立的二元搜尋樹層數最少,因此我們可以從樹的形狀的角度出發,選擇最平衡的樹形。一般而言,最平衡的二元搜尋樹是滿二元樹,也就是每個節點都有兩個子節點的二元樹。如果要建立含有 $n$ 個節點的滿二元樹,其深度為 $lfloorlog_2 n floor + 1$。以下為各個選項建立二元搜尋樹後的形狀:ABCD因此,選項 (B) 所建立的二元搜尋樹層數最少,為 $lfloorlog_2 6 floor + 1 = 3$ 層。