紅黑樹筆記
1.紅黑樹的根是黑的
2.所有外部節點[NIL]都是黑的
3.其余節點若為紅則只能有黑孩子//紅節點的兒子和父親都是黑色的
4.外部節點到根途經的黑節點數目相等//黑深度
外部節點是一類本不存在的節點 引入是為了方便分析和實現
紅黑樹的局部結構無非四種
總是假設插入的節點是紅色 除非是根
1.雙紅缺陷
情況1:叔父節點是黑色
情況2:叔父節點是紅色
刪除
情況1:要刪除的是紅節點 紅節點對黑高沒有影響 或者刪除的點是黑節點 但它至少有一個紅兒子//x和它的兒子至少有一個是紅的
雙黑缺陷:x和它的兒子全是黑的 刪除x後全樹的黑深度不再統一
BB-1:x的兄弟節點s為黑 且s至少有一個紅孩子t
s直接繼承p的顏色
BB-2R:x的兄弟s為黑 且s的兩個孩子均為黑;p為紅
BB-2B:x的兄弟s為黑 且s的兩個孩子均為黑;p為黑
s染紅相當於做合並
BB-3:x的兄弟s是紅色 其余討論節點均為黑
經過一次zig 或 zag s變黑 p變紅 則此時情況轉變為 x擁有一個黑兄弟s‘的情況
既然p已經轉紅 那麽只可能出現BB-1和BB-2R 因此我們不會連續出現下溢
紅黑樹筆記
相關推薦
演算法導論 第十三章:紅黑樹 筆記(紅黑樹的性質、旋轉、插入、刪除)
紅黑樹(red-black tree) 是許多“平衡的”查詢樹中的一種,它能保證在最壞情況下,基本的動態集合操作的時間為O(lgn) 。 紅黑樹的性質: 紅黑樹是一種二叉查詢樹,但在每個結點上增加一個儲存位表示結點的顏色,可以是RED或BLACK 。通過對任何一條從根到葉子的路徑上各個結
紅黑樹筆記
nbsp 刪除 分析 父親 都是 方便 紅孩子 http 兩個 1.紅黑樹的根是黑的 2.所有外部節點[NIL]都是黑的 3.其余節點若為紅則只能有黑孩子//紅節點的兒子和父親都是黑色的 4.外部節點到根途經的黑節點數目相等//黑深度 外部節點是一類本不存在的節點 引入是為
數據結構學習筆記-排序/隊/棧/鏈/堆/查找樹/紅黑樹
算法 數據結構排序:插入排序:每次從剩余數據中選取一個最小的,插入已經排序完成的序列中合並排序:將數據分成左右兩組分別排序,然後合並,對每組數據的排序遞歸處理。冒泡排序:重復交換兩個相鄰元素,從a[1]開始向a[0]方向冒泡,然後a[2]...當a[i]無法繼續往前擠的時候說明前面的更小了,而且越往前越小(擠
算法學習筆記:紅黑樹
當前 com 情況 路徑 沒有 四種 刪除 http 調整 一、紅黑樹特性 1.節點只能為紅色或者黑色。 2.根節點為黑色。 3.葉節點(NIL)為黑色。 4.紅色節點的子節點必須時黑色節點。 5.任意節點到達該節點的子孫節點的路徑包含相同數目的黑色節點。 二、紅黑樹基
紅黑樹( Red-Black Tree ) - 筆記
沖突 性能 tro 紅黑樹特性 最短路徑 方式 筆記 nbsp 一個 1. 紅黑樹屬性:根到葉子的路徑中,最長路徑不大於最短路徑的兩倍。 2. 紅黑樹是一個二叉搜索樹,並且有 a. 每個節點除了有左、右、父節點的屬性外,還有顏色屬性,紅色或者黑色。 b. ( 根屬
資料結構之紅黑樹個人筆記
作者:Sky Wang 於 2013-08-08  
資料結構學習筆記------紅黑樹(附c++程式碼)
1、紅黑樹簡介 紅黑樹是二叉查詢樹的一種,其增刪改查的統計效能要優於AVL樹,查詢、插入、刪除演算法的複雜度都為O(log(n))。先附上紅黑樹這種資料結構的性質: 性質1、節點是紅色或黑色。 性質2、根節點是黑色。 性質3、每個葉節點(是指的空節點,nil節點)是黑色的。 性質4、
紅黑樹分析筆記
閱讀本文的前提 1、知道二叉查詢樹的概念,插入、刪除和查詢操作; 2、知道二叉樹的左旋和右旋。 3、瞭解二叉平衡樹(AVL樹)的概念 紅黑樹的概念 紅黑樹是一種自平衡的二叉查詢樹,查詢、插入和刪除的平均時間複雜度是O(logN)。紅黑樹的每個節點都有一個顏色值(紅或黑),具有以下
紅黑樹學習筆記 — (1) 定義、插入、刪除
紅黑樹(RBT)本質上是一種二叉查詢樹(BST),但它在二叉查詢樹的基礎上額外添加了一個標記(顏色),同時具有一定的規則。這些規則使紅黑樹保證了一種平衡,插入、刪除、查詢的最壞時間複雜度都為 O(logn)。 五個特性 每個節點是黑色或紅色 根節點(roo
2-3 樹/紅黑樹(red-black tree)學習筆記
2-3 tree 2-3樹節點: null節點,null節點到根節點的距離都是相同的,所以2-3數是平衡樹 2叉節點,有兩個分樹,節點中有一個元素,左樹元素更小,右樹元素節點更大 3叉節點,有三個子樹,節點中有兩個元素,左樹元素更小,右樹元素更大,中間樹介於兩個父元素之間。 插入操作如下圖所示 紅
筆記:紅黑樹旋轉和插入
紅黑樹 紅黑樹是每個節點都帶有顏色屬性的二叉查詢樹,顏色或紅色或黑色。在二叉查詢樹強制一般要求以外,對於任何有效的紅黑樹我們增加了如下的額外要求: - 性質1. 節點是紅色或黑色。 - 性質2. 根節點是黑色。 - 性質3. 每個葉節點(NIL節點,空節點)是黑色的。 - 性質4
B樹,B+樹,紅黑樹應用場景筆記
一、B樹的應用 1、B樹大量應用在資料庫和檔案系統當中。 它的設計思想是,將相關資料儘量集中在一起,以便一次讀取多個數據,減少硬碟操作次數。B樹演算法減少定位記錄時所經歷的中間過程,從而加快存取速度。 假定一個節點可以容納100個值,那麼3層的B樹可以容納100萬個資料
演算法導論學習筆記(九):紅黑樹
前言 前面已經學完了二叉查詢樹,這是我們學習紅黑樹的基礎,必須要熟練掌握,不然學習紅黑樹會很吃力的。雖然前面 已經學習了二叉查詢樹,但感覺學習紅黑樹的時候還是沒那麼輕鬆。 紅黑樹是一類特殊的二叉查詢樹,是一顆平衡的二叉查詢樹,但只是接近平衡。它能保證在最壞情況下,基本的動態
【面經筆記】紅黑樹的特性與其在C++ STL中的應用
AVL樹和紅黑樹適合內部儲存應用,B樹適合外部儲存應用 AVL樹和紅黑樹都是用旋轉保持平衡,AVL樹對每個插入操作最多需要兩次次旋轉(單/雙旋),對每個刪除操作最多需要O(logn)次旋轉;而紅黑樹對每個插入和刪除操作,任何不平衡都會在三次旋轉之內解決。 查
JAVA8 hashmap原始碼閱讀筆記(紅黑樹連結串列)
一:hashmap的13 個成員變數 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; -> 陣列預設初始容量:16 static final int MAXIMUM_CAPACITY
演算法導論學習筆記—紅黑樹最全的Java實現
紅黑樹(red-black-tree)是許多“平衡”搜尋樹的一種,它可以保證在最壞情況下基本動態集合操作的時間複雜度為O(lgn)。除遍歷外,其餘的方法的時間複雜度都為O(lgn),如INSERT, SEARCH, MAXIMUM, MINIMUM, DELETE等。本章
紅黑樹 學習筆記1
本系列為演算法導論 第13章 紅黑樹 學習筆記 RB_Tree是一顆BST,滿足: 1. 結點顏色為紅或黑。 2. 根結點為黑色。 3. 每個葉結 (NIL) 點是黑色。 4. 不存在2個連續
紅黑樹學習筆記之插入操作
紅黑樹是234樹的一種,它是自平衡的二叉查詢樹,其優點為可以在㏒(n)時間內完成查詢,刪除和插入的動作。性質1:節點為有色的(紅色和黑色)性質2:根節點以及所有的葉子節點為黑色性質3:所有的紅色節點的父節點為黑色節點(黑色節點的父節點可以為紅色也可以為黑色)性質4:從任意節點
【bzoj3227】紅黑樹
發現 blog ret amp 這樣的 spa 兩個 include log 神TM的紅黑樹,其實本質上應該還是一種樹dp的問題…… 一開始想了一個比較裸的樹dp,後來發現還有更強的做法。 每個前端黑節點是看作一個物品,然後這就是很典型的樹形dp的問題。 不過可以這麽考慮,
圖解集合7:紅黑樹概念、紅黑樹的插入及旋轉操作詳細解讀
集合 得到 2個 排序。 數據流 except boolean 修正 split 原文地址http://www.cnblogs.com/xrq730/p/6867924.html,轉載請註明出處,謝謝! 初識TreeMap 之前的文章講解了兩種Map,分別是HashMa