8.紅黑樹的定義,紅黑樹的效能分析和與平衡二叉樹的比較
平衡二叉樹
平衡二叉樹或者是一顆空的二叉排序樹,或是具有下列性質的二叉排序樹:
- 根節點的左子樹和右子樹的深度最多相差1
- 根節點的左子樹和右子樹都是平衡二叉樹
平衡因子
平衡因子是該節點的左子樹的深度與右子樹的深度之差。
最小不平衡子樹
在平衡二叉樹的構造過程中,以距離插入節點最近的,且平衡因子的絕對值大於1 的節點為根的子樹。
紅黑樹
紅黑樹是每個節點都帶有顏色屬性的二叉排序樹,顏色或紅色或黑色。除了具有二叉排序樹的性質以外,還具有以下5個性質:
性質1. 節點是紅色或黑色。
性質2. 根節點是黑色。
性質3 每個葉節點(NIL節點,空節點)是黑色的。
性質4 每個紅色節點的兩個子節點都是黑色。(從每個葉子到根的所有路徑上不能有兩個連續的紅色節點)
性質5. 從任一節點到其每個葉子的所有路徑都包含相同數目的黑色節點。
紅黑樹和平衡二叉樹的比較
紅黑樹與平衡二叉樹的查詢效能相同。但是當插入節點和刪除節點從而破壞樹的平衡性時,紅黑樹需要做旋轉調整的次數比平衡二叉樹所需的旋轉調整的次數要少的多,其查詢,插入,刪除的操作時間複雜度均為O(Log2n)。
相關推薦
8.紅黑樹的定義,紅黑樹的效能分析和與平衡二叉樹的比較
平衡二叉樹 平衡二叉樹或者是一顆空的二叉排序樹,或是具有下列性質的二叉排序樹: 根節點的左子樹和右子樹的深度最多相差1根節點的左子樹和右子樹都是平衡二叉樹 平衡因子 平衡因子是該節點的左子樹的深度與右子樹的深度之差。 最小不平衡子樹 在平衡二叉樹的構造過程中,以距離插入節
紅黑樹與平衡二叉樹區別?
如果說平衡二叉樹是一個類的話,那麼紅黑樹就是該類的一個例項。演算法的書我丟久了,一下子也找不到,我是憑記憶說的。紅黑樹的演算法比較麻煩,但它的思想很好,如果理解了它的思想也就理解它的演算法,我也只記得思想,具體演算法記不得了。我就在這說說思想吧。紅黑樹有兩個重要性質:1、紅
二叉搜尋樹與平衡二叉樹
二叉搜尋樹(BST)二叉搜尋樹也是一種樹,適用與一般二叉樹的全部操作,但二叉搜尋樹能夠實現資料的快速查詢性質:非空左子樹的所有鍵值小於其根節點的鍵值非空右子樹的所有鍵值大於其根節點的鍵值左右子樹都是二叉搜尋樹二叉搜尋樹的插入、查詢、刪除刪除主要分三種情況來討論:(1)要刪
二叉排序樹與平衡二叉樹
二叉排序樹 : 特點: 1、如果它的左子樹不空,那麼左子樹上的所有結點值均小於它的根結點值; 2、如果它的右子樹不空,那麼右子樹上的所有結點值均大於它的根結點值; 3、它的左右子樹也分別為二叉查詢樹 如下如所示二叉查詢樹: 二叉查詢樹的插入和刪除都非常的方便,很好的解決了折半查詢新增刪除
排序樹與平衡二叉樹講解---新手超級易懂
二叉查詢樹 二叉查詢樹,也稱二叉搜尋樹,或二叉排序樹。其定義也比較簡單,要麼是一顆空樹,要麼就是具有如下性質的二叉樹: (1)若任意節點的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值; (2) 若任意節點的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值; (3) 任意節點的左、右子樹也分
二叉樹,平衡二叉樹,紅黑樹,B-樹、B+樹、B*樹的區別
二叉查詢/搜尋/排序樹 BST (binary search/sort tree) 或者是一棵空樹; 或者是具有下列性質的二叉樹: (1)若它的左子樹不空,則左子樹上所有結點的值均小於它的根節點的值; (2)若它的右子樹上所有結點的值均大於它的根節點的值; (3)它的左、右子
AVL平衡二叉樹,紅黑樹原理。
二叉搜尋樹 插入和刪除操作必須先查詢,查詢效率代表了二叉搜尋樹中各個操作的效能 最優情況:二叉搜尋樹為完全二叉樹,比較次數Log2^N 最壞情況:二叉搜尋樹為單支樹,平均比較次數N/2 平衡二叉樹 平衡樹: AVL樹,紅黑樹 AVL樹:(二叉搜尋樹改良版)
二叉樹,完全二叉樹,滿二叉樹,二叉排序樹,平衡二叉樹,紅黑樹,B數,B-樹,B+樹,B*樹(一)
二叉樹 二叉樹:二叉樹是每個節點最多有兩個子樹的樹結構; 是n(n>=0)個結點的有限集合,它或者是空樹(n=0),或者是由一個根結點及兩顆互不相交的、分別稱為左子樹和右子樹的二叉樹所組成。 完全二叉樹 完全二叉樹:除最後一層外,每一層上的結點數均達到最
二叉樹,完全二叉樹,滿二叉樹,二叉排序樹,平衡二叉樹,紅黑樹,B數,B-樹,B+樹,B*樹(二)
二叉樹,完全二叉樹,滿二叉樹,二叉排序樹,平衡二叉樹,紅黑樹,B數,B-樹,B+樹,B*樹(一): BST樹 即二叉搜尋樹: 1.所有非葉子結點至多擁有兩個兒子(Left和Right); 2.所有結點儲存一個關鍵字;
一步一圖一程式碼,一定要讓你真正徹底明白紅黑樹(平衡二叉樹)
一步一圖一程式碼,一定要讓你真正徹底明白紅黑樹 作者:July 二零一一年一月九日 ----------------------------- 本文參考: I、 The Art of Computer Programming Volume I II、 I
理解二叉樹,平衡二叉樹,紅黑樹
c++的STL 中set,map是紅黑樹(紅黑樹是平衡二叉樹的一種),我們需要深入理解紅黑樹,平衡二叉樹的起源。為什麼要用紅黑樹?紅黑樹的起源,自然是二叉查詢樹了,這種樹結構從根節點開始,左子節點小於它,右子節點大於它。每個節點都符合這個特性,所以易於查詢,是一種很好的資料結
平衡二叉樹(AVL)與紅黑樹
數組 條件 節點 avl樹 平衡因子 src 特性 復雜度 關聯數組 一、AVL樹性質1.本身首先是一棵二叉搜索樹。2.帶有平衡條件:每個結點的左右子樹的高度之差的絕對值(平衡因子)最多為1。也就是說,AVL樹,本質上是帶了平衡功能的二叉查找樹(二叉排序樹,二叉搜索樹)。A
紅黑樹、自平衡二叉樹、AVL樹、B樹的比較
1. 紅黑樹和自平衡二叉(查詢)樹區別 紅黑樹放棄了追求完全平衡,追求大致平衡,在與平衡二叉樹的時間複雜度相差不大的情況下,保證每次插入最多隻需要三次旋轉就能達到平衡,實現起來也更為簡單。 平衡二叉樹追求絕對平衡,條件比較苛刻,實現起來比較麻煩,每次插入新節點之後需要旋轉的
二叉查詢樹、平衡二叉樹、紅黑樹、B-/B+樹效能對比
1. 二叉查詢樹 (Binary Search Tree) BST 的操作代價分析: (1) 查詢代價: 任何一個數據的查詢過程都需要從根結點出發,沿某一個路徑朝葉子結點前進。因此查詢中資料比較次數與樹的形態密切相關。 當樹中每個結點左右子樹高度大致相同時,樹高為
關於樹的總結從二叉樹->二叉搜尋樹->平衡二叉樹->紅黑樹->B樹與B+樹
二叉樹的定義與性質,包括各種操作的原始碼在本部落格的的此處:二叉樹 二叉搜尋樹(Binary Search Tree)的定義性質以及原始碼實現在本部落格此處:二叉搜尋樹 平衡二叉樹(AVL樹),是一棵
基於樹的查詢(二叉排序樹、平衡二叉樹、B樹、B+樹、伸展樹和紅黑樹)
本文主要介紹幾種比較重要的樹形結構: ① 二叉排序樹 ② 平衡二叉樹 ③ B樹 ④ B+樹 ⑤ 伸展樹 ⑥ 紅黑樹 分為三個問題來描述每種樹: ① 是什麼?主要應用? ② 有什麼特點(性質)? ③ 基於它的操作?
資料結構中常見的樹(BST二叉搜尋樹、AVL平衡二叉樹、RBT紅黑樹、B-樹、B+樹、B*樹)
BST樹 即二叉搜尋樹: 1.所有非葉子結點至多擁有兩個兒子(Left和Right); 2.所有結點儲存一個關鍵字; 3.非葉子結點的左指標指向小於其關鍵字的子樹,右指標指向大於其關鍵字的子樹; 如:
平衡二叉樹各種演算法詳解一:紅黑樹
平衡二叉樹(Balanced Binary Tree)具有以下性質:它是一 棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。平衡二叉樹的常用演算法有紅黑樹、AVL、Treap、伸展樹、SBT等。最小二叉平衡樹的節點的公式如下 F(n)=
兩種平衡二叉樹的比較: AVL樹和紅黑樹
1 好處 及 用途 紅黑樹並不追求“完全平衡”——它只要求部分地達到平衡要求,降低了對旋轉的要求,從而提高了效能。 紅黑樹能夠以O(log2 n) 的時間複雜度進行搜尋、插入、刪除操作。此外,由於它的設計,任何不平衡都會在三次旋轉之內解決。當然,還有一
平衡二叉樹AVL 紅黑樹 B樹 二叉查詢樹 B+樹 B-樹
B-Trees B≤numberofchildren<2BB \le number of children < 2BB≤numberofchildren<2B B−1≤numberofkeys<2B−1B-1