紅黑樹是一種自平衡的二叉搜索樹,確保樹的高度始終保持在 O(log n) 級別,保證了在最壞情況下的查找、插入和刪除操作的時間復雜度為 O(log n)。
每個節點都有一個顏色屬性,紅色或黑色。根節點為黑色,葉節點(NIL節點)為黑色。
如果一個節點是紅色的,則其子節點必須是黑色的,這確保了從根節點到葉節點的任意路徑上不能有兩個連續的紅色節點。
從任一節點到其子樹中每個葉節點的所有路徑上包含相同數目的黑色節點,這被稱為黑高度,保證了紅黑樹的平衡。
插入和刪除操作會在保持上述性質的前提下進行旋轉和重新著色操作,以維持紅黑樹的特性。
紅黑樹可以用于實現有序映射和集合等數據結構,廣泛應用于平衡樹、數據庫索引等領域。