search

平衡二叉樹的作用

平衡二叉樹的作用

  平衡二叉樹能提升平均查詢效率。因為平衡二叉樹是特殊的二叉排序樹,他的結點元素間存在著偏序關係。相對於一般的二叉排序樹,平衡二叉樹的左右子樹的深度差也有不超過1層的約束。這樣使得平衡樹是同種元素序列情況下的深度最小的二叉排序樹。這可以減少二叉樹元素查詢的深度,從而提升平均查詢效率。

平衡二叉樹的判定

  平衡二叉樹具有以下性質:它是一 棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹,同時,平衡二叉樹必定是二叉搜尋樹,反之則不一定。

  平衡二叉樹的常用實現方法有紅黑樹、AVL、替罪羊樹、Treap、伸展樹等。紅黑樹是一種自平衡二叉查詢樹,是在計算機科學中用到的一種資料結構,典型的用途是實現關聯陣列。AVL是最先發明的自平衡二叉查詢樹演算法。Treap,和一般的二叉排序樹不同的是,Treap紀錄一個額外的資料,即優先順序。伸展樹的優勢在於不需要記錄用於平衡樹的冗餘資訊。

紅黑樹和平衡二叉樹的區別

  紅黑樹放棄了追求完全平衡,追求大致平衡,在與平衡二叉樹的時間複雜度相差不大的情況下,保證每次插入最多隻需要三次旋轉就能達到平衡,實現起來也更為簡單。

  平衡二叉樹追求絕對平衡,條件比較苛刻,實現起來比較麻煩,每次插入新節點之後需要旋轉的次數不能預知。

  紅黑樹:是一種自平衡二叉查詢樹,是在計算機科學中用到的一種資料結構,典型的用途是實現關聯陣列。紅黑樹是在1972年被髮明,當時被稱為平衡二叉B樹。紅黑樹是一種特化的AVL樹(平衡二叉樹),都是在進行插入和刪除操作時透過特定操作保持二叉查詢樹的平衡,從而獲得較高的查詢效能。它雖然是複雜的,但它的最壞情況執行時間也是非常良好的,並且在實踐中是高效的: 它可以在O時間內做查詢,插入和刪除,這裡的n 是樹中元素的數目。


紅黑是不是平衡

  紅黑樹是一種自平衡二叉查詢樹,是在計算機科學中用到的一種資料結構,典型的用途是實現關聯陣列。它是在1972年由Rudolf Bayer發明的,當時被稱為平衡二叉B樹。後來,在1978年被 Leo J Guibas 和 Robert Sedgewick 修改為如今的“紅黑樹”。紅黑樹和AVL樹類似,都是在進 ...

什麼場景下會使用

  樹是一種重要的非線性資料結構,直觀地看,它是資料元素(在樹中稱為結點)按分支關係組織起來的結構,很像自然界中的樹那樣。樹結構在客觀世界中廣泛存在,如人類社會的族譜和各種社會組織機構都可用樹形象表示。樹在計算機領域中也得到廣泛應用,如在編譯源程式如下時,可用樹表示源源程式如下的語法結構。又如在資料庫系統中, ...

由哪3個基本元素組成

  構成二叉樹的3個基本元素是左子樹,右子樹,和根。   二叉樹有五種基本形態:   1、空二叉樹;   2、僅有根節點的二叉樹;   3、左子樹為空的二叉樹 ;   4、右子樹為空的二叉樹;   5、左右子樹均為非空的二叉樹 。 ...

查詢問題

  查詢二叉樹用折半查詢法,該方法優點是比較次數少,查詢速度快,平均效能好;其缺點是要求待查表為有序表。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。首先,假設表中元素是按升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功;否則利用中間位置記錄將表分成前、後兩個子表,如果中 ...

完全的順序儲存的方法步驟

  完全二叉樹的順序儲存,僅需從根節點開始,按照層次依次將樹中節點儲存到陣列即可,在計算機科學中,二叉樹是每個結點最多有兩個子樹的樹結構。通常子樹被稱作“左子樹”(leftsubtree)和“右子樹”(rightsubtree)。二叉樹常被用於實現二叉查詢樹和二叉堆。   一棵深度為k,且有2^k-1個結點的 ...

什麼是

  在計算機科學中:   是每個節點最多有兩個子樹的樹結構,被稱作左子樹和右子樹;被用於實現二叉查詢樹和二叉堆;二叉樹的每個結點至多隻有二棵子樹;二叉樹的子樹有左右之分,次序不能顛倒。 ...

深度就是層數嗎

  二叉樹深度就是層數。二叉樹結點的度數指該結點所含子樹的個數,二叉樹結點子樹個數最多的那個結點的度為二叉樹的度。二叉樹的根結點所在的層數為1,根結點的孩子結點所在的層數為2,以此下去。深度是指所有結點中最深的結點所在的層數。   二叉樹是一個連通的無環圖,並且每一個頂點的度不大於3。有根二叉樹還要滿足根結點 ...