二叉查詢樹 紅黑樹

2021-07-29 18:58:30 字數 805 閱讀 2496

紅黑樹是一棵二叉查詢樹,它在每個結點上增加了乙個儲存位來表示結點的顏色,可以是red或black。通過對任何一條從根到葉子的簡單路徑上各個結點的顏色進行約束,紅黑樹確保沒有一條路徑會比其他路徑長出2倍,因而是近乎於平衡的。

樹中每個結點包含5個屬性:color、key、left、right和p。如果乙個結點沒有子結點或者父結點,則該結點相應指標屬性的值為nil。我們可以把這些nil視為指向二叉搜尋樹的葉結點(外部結點)的指標,而把關鍵字的結點視為樹的內部結點。

一棵紅黑樹是滿足下面紅黑性質的二叉搜尋樹:

(1)每個結點是紅色的,或是黑色的

(2)根節點是黑色的;

(3)每個葉節點(nil)是黑色的

(4)如果乙個節點是紅色的,則它的兩個子結點都是黑色的

(5)對每個結點,從該結點到其所有後代葉節點的簡單路徑上,均包含相同數目的黑色結點。

搜尋樹操作插入和刪除咋含有n個關鍵字的紅黑樹上,執行花費時間為o(lgn)。由於這兩個操作對樹做了修改,結果可能違反了紅黑樹的性質,因此要改變樹中某些結點的顏色以及指標結構。

指標結構的修改是通過旋轉來完成的,這是一種能保持二叉搜尋樹性質的搜尋樹區域性操作。

旋轉操作保持了二叉搜尋樹的性質:a的關鍵字在x.key之前,x.key在b的關鍵字之前,b的關鍵字在y.key之前,y.key在y的關鍵字之前。

紅黑樹 二叉查詢樹

紅黑樹一種自平衡二叉查詢樹,是電腦科學中用到的一種資料結構,典型用途是實現關聯陣列。紅黑書很複雜,但是他的操作有良好的最壞情況執行時間,不管是查詢 插入和刪除,他的時間複雜度都是o logn 其中的n是樹中元素的數目。二叉查詢樹也稱二叉搜尋樹 有序二叉樹 ordered binary tree 排序...

紅黑二叉查詢樹

擷取自 演算法 第四版 紅黑二叉查詢樹背後的基本思想是用標準二叉查詢樹 完全 由2 節點構成 和 一些額外的資訊 替換 3 節點 來表示 2 3樹。紅黑樹中的鏈結分為兩種 1 將兩個2 節點連線起來 構成3 節點的紅鏈結 2 2 3樹中的普通鏈結為黑鏈結 將兩個 2節點用左斜的紅色鏈結鏈起來可表示3...

紅黑二叉查詢樹

三 各種查詢符號表的效能比較 之前所述的 2 3樹 的插入演算法並不難理解,我們要利用名為紅黑二叉查詢樹的簡單資料結構來表達並實現它。最後的 量並不大。紅黑樹背後的思想是用標準的二叉查詢樹 完全由2 結點構成 和一些額外的資訊 替換3 結點 來表示 2 3樹 對於任意的2 3樹,只要對結點進行轉換,...