一 概念 R B Tree,全稱是Red Black Tree又稱紅黑樹,它是一種特殊的二叉查找樹,紅黑樹的每個節點上都有存儲位表示節點的顏色,可以是紅或黑。 二 特性 每個節點或者是紅色,或者是黑色 根節點是黑色的 每個葉子節點 NIL 是黑色的。注意:這里的葉子節點,是指為空的葉子節點 如果一個節點是紅色的,則它的子節點必須是黑色的 從任意一個節點到其葉子的所有路徑中,所包含的黑節點數量是相同 ...
2019-10-22 08:59 1 949 推薦指數:
前言 最近斷斷續續花了一個禮拜的時間去看紅黑樹算法,關於此算法還是比較難,因為涉及到諸多場景要考慮,同時接下來我們要講解的HashMap、TreeMap等原理都涉及到紅黑樹算法,所以我們不得不了解其原理,關於一些基礎知識這里不再講解,本文參考博文:《https://www.cnblogs.com ...
轉載自https://www.cnblogs.com/liyuan989/p/4071942.html 感覺寫的非常好 前言 紅黑樹是特殊二叉查找樹的一種,一棵紅黑樹有以下5種性質: 根節點為黑色。 每個節點不是黑色就是紅色。 每個紅色節點的兩個兒子一定是黑色。 所有 ...
紅黑樹及其插入與刪除操作[未完待續] 紅黑樹的定義 紅黑樹是一種自平衡二叉查找樹。它相比於平衡二叉樹的優點在於,其的特性可以讓其在任何條件下保持樹的高度小於等於log n,所以其即使在最壞條件下對於增刪查改這樣的基本操作也能保持O(log n)的時間復雜度;另外,相比於嚴格平衡的AVL樹 ...
- 紅黑樹:紅黑樹是一種二叉平衡樹,二叉查找樹,它牛逼之處就在於它足夠的平衡,可以達到高度至多2lg(n+1),所以在java中的treemap和c++ set, multiset, map, multimap就使用的紅黑樹。 - 紅黑樹的性質:1. 結點分為紅色和黑色兩種 2.根 ...
模板圖 二叉查找樹 由於紅黑樹本質上就是一棵二叉查找樹,所以在了解紅黑樹之前,咱們先來看下二叉查找樹。 二叉查找樹(Binary Search Tree),也稱有序二叉樹(ordered binary tree),排序二叉樹(sorted binary tree),是指一棵空樹或者具有 ...
刪除 因為根據BST中的規則,選擇該結點的左子樹中最大值和右子樹中最小值替代掉原本要刪除的點的值,再將改點刪掉即可,所以這里只會討論那個刪掉的點。 分為以下情況: 刪除結點的左右子結點均為空,則將其直接刪除即可; 刪除結點的左右子結點其中一方為空,則將存在的那一方的子結點替代掉刪除 ...
紅黑樹的刪除分兩個部分介紹,第一個部分介紹節點的刪除;第二部分介紹在將節點刪除后對紅黑樹的調整,使得其能符合紅黑樹的性質。 1、節點的刪除 假如要刪除的節點為z,這時,有三種情況: 1)節點z沒有孩子節點,這時直接將z節點刪除,然后判斷節點z是否為黑色 ...