問題詳情

26 針對一個具有 n 個節點的二元搜尋樹(binary search tree),下列敍述何者錯誤?
(A) 由根節點(root)開始,以中序(inorder)方式走訪此二元搜尋樹的時間複雜度為 θ(n)
(B) 在最差狀況下搜尋一個數值的時間複雜度為 θ(n)
(C) 在最差狀況下新增一個數值的時間複雜度為 θ(n)
(D) 在最佳狀況下刪除一個數值的時間複雜度為 θ(n)

參考答案

答案:D
難度:困難0.386
書單:沒有書單,新增

用户評論

william】評論

搜尋數字:從樹根開始走往左小孩或右小孩,直至目標。插入數字:搜尋直至樹葉。接著新增左小孩或右小孩。刪除數字:搜尋直至目標。接著分為三類情況。沒有小孩:直接刪除節點。一個小孩:小孩連往父親,然後刪除節點。兩個小孩:次大節點取代目標節點。因為次大節點沒有左小孩,所以刪除次大節點只有兩類情況,於是到此為止不再遞迴。搜尋、插入、刪除的時間複雜度等同於二元搜尋樹的高度。數字動態增減,二元搜尋樹的高度亦隨之變動,最差是 O(N) ,最佳是 O(logN) 。所有節點連成一線的時候是最差的,所有節點形成 perfect binary tree 是最佳的...