a. 紅黑樹本質上是一棵自平衡二叉查找樹
b. 二叉查找樹的特色:
i. 左子樹都小於根
ii. 右子樹都大於根
c. 紅黑樹的特色:
i. 節點非紅即黑
ii. 根節點是黑節點
iii. 紅節點的子節點必定是黑節點,可是黑節點的子節點不必定是紅節點
iv. 最底層的葉子節點必定是黑色的空節點
v. 從根節點到任意一個葉子節點所通過的路徑中的黑色節點個數一致的,即黑節點高度是一致
vi. 新添的節點必須是紅節點
d. 紅黑樹的修正 - 前提必定是父子節點都爲紅 - 修正過程是一個鏈式過程:
i. 叔父節點爲紅,那麼將父節點以及叔父節點塗黑,將祖父節點塗紅
ii. 叔父節點爲黑,而且當前節點爲右子葉,那麼以當前節點爲軸進行左旋
iii. 叔父節點爲黑,而且當前節點爲左子葉,那麼以父節點爲軸進行右旋
iv. 修正案例:
紅黑樹的查詢時間複雜度是O(logn)blog