53. AVL 樹是一種平衡二元搜尋樹。今天給一棵高度為 5的 AVL 樹,請問該樹的節點最少為?(這邊的高度指的是根節點到葉節點所經過的「邊」數)
(A) 16
(B) 20
(C) 31
(D) 32

答案:登入後查看
統計: A(13), B(27), C(36), D(9), E(0) #3120466

詳解 (共 3 筆)

#5861568
在 AVL 樹中,節點的最小數量取決於樹...
(共 473 字,隱藏中)
前往觀看
12
0
#6347744
解析 AVL 樹最少節點數量 AVL ...
(共 700 字,隱藏中)
前往觀看
3
0
#6477332

要找出高度為 5 的 AVL 樹最少有多少節點,我們需要理解 AVL 樹的平衡條件。

AVL 樹的平衡條件: 對於 AVL 樹中的任何節點,其左右子樹的高度差的絕對值不能超過 1。

我們用 Nh 來表示高度為 h 的 AVL 樹所包含的最少節點數

  • 高度為 0 的 AVL 樹 (h=0):

    • 只有一個根節點。
    • N0=1
  • 高度為 1 的 AVL 樹 (h=1):

    • 根節點有兩個子節點(可以是左子樹高度 0,右子樹高度 0)。

    • N1=1(root)+N0+N0=1+1+1=3 (或 1個根節點 + 1個高0的子樹)

    • 最少節點數的樹,其中一個子樹的高度為 h1,另一個子樹的高度為 h2(為了保持平衡且節點最少)。

    • N1=1(root)+N0(height h1)+N−1(impossible)=1+N0=1+1=2 (只有一個子樹,高0)

    • 實際上,高度為 1 的 AVL 樹最少需要 2 個節點(根節點和一個子節點)。例如:

      R (height 1) / N (height 0)
    • 另一個推導方式是 Nh=Nh1+Nh2+1,這個遞迴式通常用於計算最少節點數。

    • N0=1

    • N1=N0+N−1+1 (這裡 N−1 定義為 0 或 1 節點。如果定義為 0,則 N1=1+0+1=2)

    • 讓我們採用經典的費波那契數列關係來定義最少節點數:

    • N0=1 (root only)

    • N1=2 (root + 1 child)

    • Nh=Nh1+Nh2+1 (當高度為 h 時,根節點 + 左子樹的高度為 h1 + 右子樹的高度為 h2 (或反之))

現在我們開始計算:

  • N0=1
  • N1=2
  • N2=N1+N0+1=2+1+1=4
  • N3=N2+N1+1=4+2+1=7
  • N4=N3+N2+1=7+4+1=12
  • N5=N4+N3+1=12+7+1=20

所以,高度為 5 的 AVL 樹最少有 20 個節點。

The final answer is B

0
0