二叉查找樹與紅黑樹

二叉查找樹

1、左子樹上所有的節點的值均小於或等於它的根節點的值;
2、右子樹上所有的節點的值均大於或等於它的根節點的值;
3、左右子樹也一定分別是二叉排序樹;

紅黑樹(平衡二叉樹)

1、節點是紅色或黑色;
2、根節點是黑色;
3、每個葉子的節點都是黑色的空節點(NULL);
4、每個紅色節點的兩個子節點都是黑色(從每個葉子到跟的所有路徑上不能有兩個連續的紅節點)(即對於層來說除了NIL節點,紅黑節點是交替的,第一層是黑節點那麼其下一層肯定都是紅節點,反之一樣);
5、從任意節點到每個葉子的所有路徑都包含相同的黑色節點;

紅黑樹插入總結:

1、當出現新的節點時默認爲紅色插入,如果其父節點爲紅色,則對其遞歸向上換色,如果根節點由此變爲紅色,則對根節點進行左旋(右側過深)或右旋(左側過深)之後從根節點向下修改顏色;
2、從根節點檢查是否符合路徑上的黑色節點數量一致,如果不一致則對該節點進行左旋(右側黑色節點數量更多)或右旋(左側黑色節點數量更多)並變換顏色,重複2操作直到符合紅黑樹規則;

發佈了18 篇原創文章 · 獲贊 4 · 訪問量 5626
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章