紅黑樹是什么?怎么實現?時間復雜度 ?
紅黑樹(Red-Black Tree,簡稱R-B Tree),它一種特殊的二叉查找樹。 紅黑樹是特殊的二叉查找樹,意味着它滿足二叉查找樹的特征:任意一個節點所包含的鍵值,大於等於左孩子的鍵值,小於等於右孩子的鍵值。 除了具備該特性之外,紅黑樹還包括許多額外的信息。
紅黑樹的特性: 紅黑樹是特殊的AVL樹,遵循紅定理和黑定理 紅定理:不能有兩個相連的紅節點 。黑定理:根節點必須是黑節點,而且所有節點通向NULL的路徑上,所經過的黑節點的個數必須相等。
基本操作是添加、刪除和旋轉。在對紅黑樹進行添加或刪除后,會用到旋轉方法。旋轉的目的是讓樹保持紅黑樹的特性。旋轉包括兩種:左旋 和 右旋。
紅黑樹的應用比較廣泛,主要是用它來存儲有序的數據,它的查找、插入和刪除操作的時間復雜度是O(lgn)。