阿摩線上測驗 登入

申論題資訊

試卷:104年 - 104年地方四等-程式設計概要#35322
科目:程式設計
年份:104年
排序:0

題組內容

一、請試述下列名詞之意涵:(每小題 4 分,共 24 分)

申論題內容

⑴ AVL tree

詳解 (共 3 筆)

詳解 提供者:Chen Yuching
高度平衡二元搜尋樹(height balanced binary search tree)在1962年由Adelson-Velskii 和Landis所提出的,因此又稱為AVL-tree
詳解 提供者:hchungw

AVL樹(Adelson-Velsky和Landis樹)是一種自平衡二叉搜索樹。在AVL樹中,任何節點的兩個子樹的高度最大差異為一,這樣確保了樹的平衡。由於這種高度平衡的特性,AVL樹在進行插入、刪除和查找操作時可以提供較為一致的時間複雜度,大多數操作的時間複雜度為O(logn),其中n是樹中節點的數量。

AVL樹的特性:

  1. 自平衡性:AVL樹通過旋轉操作來維持自平衡,確保任何節點的左右子樹的高度差不超過1。
  2. 二叉搜索樹:所有節點滿足二叉搜索樹的性質——一個節點的左子樹只包含小於當前節點的數,右子樹只包含大於當前節點的數。
  3. 旋轉操作:當進行插入或刪除操作後樹變得不平衡時,AVL樹透過四種基本的旋轉操作(左旋、右旋、左右雙旋和右左雙旋)來恢復平衡。
  4. 高度平衡:每個節點都會維護一個平衡因子,即其左右子樹的高度差。這個平衡因子用於判斷何時需要進行旋轉操作以維持樹的平衡。

AVL樹的操作:

  • 插入:插入新節點後,沿著從插入點到根節點的路徑回溯,檢查每個節點的平衡因子,並進行必要的旋轉操作來恢復平衡。
  • 刪除:刪除節點後,同樣沿著從刪除點到根節點的路徑回溯,檢查並修正任何不平衡的情況。
  • 查找:由於維護了二叉搜索樹的性質,查找操作與普通二叉搜索樹相同,按照二叉搜索的方式進行。

AVL樹通過維持高度平衡來確保操作的高效性,適用於需要頻繁查找的應用場景,如數據庫索引。然而,插入和刪除操作中可能需要多次旋轉來保持平衡,這在某些情況下可能會導致性能開銷。

詳解 提供者:牛奶鍋
AVL Tree 是一種Binary search tree實做方式,大部分的實做方式與BST一樣,差異在於AVL tree在過程中會透過計算並調整樹的結構來讓樹維持平衡,而不會導致BST過度傾斜(不平衡)。