紅黑樹是每個節點都帶有顏色屬性的二叉查詢樹,顏色或紅色或黑色。在二叉查詢樹強制一般要求以外,對於任何有效的紅黑樹我們增加了如下的額外要求:
性質1. 節點是紅色或黑色。
性質2. 根節點是黑色。
性質3 每個葉節點(nil節點,空節點)是黑色的。
性質4 每個紅色節點的兩個子節點都是黑色。(從每個葉子到根的所有路徑上不能有兩個連續的紅色節點)
性質5. 從任一節點到其每個葉子的所有路徑都包含相同數目的黑色節點。
這些約束強制了紅黑樹的關鍵性質: 從根到葉子的最長的可能路徑不多於最短的可能路徑的兩倍長。結果是這個樹大致上是平衡的。因為操作比如插入、刪除和查詢某個值的最壞情況時間都要求與樹的高度成比例,這個在高度上的理論上限允許紅黑樹在最壞情況下都是高效的,而不同於普通的二叉查詢樹。
要知道為什麼這些特性確保了這個結果,注意到性質4導致了路徑不能有兩個毗連的紅色節點就足夠了。最短的可能路徑都是黑色節點,最長的可能路徑有交替的紅色和黑色節點。因為根據性質5所有最長的路徑都有相同數目的黑色節點,這就表明了沒有路徑能多於任何其他路徑的兩倍長。
紅黑樹性質
紅黑樹 red black tree 是許多 平衡的 查詢樹中一種,它能保證在最壞情況下,基本的動態集合操作的時間為o lgn 紅黑樹是一種二叉查詢樹,但在每個節點上增加乙個儲存位表示節點的顏色,可以是red或black,通過對任何一條從根到葉子節點路徑上各個結點著色方式的限制,紅黑樹確保沒有一條路...
紅黑樹的概念和性質
紅黑數的概念 首先,紅黑數是一棵二叉查詢樹 二叉搜尋樹 即所有左孩子都小於根節點,右孩子都大於根節點的樹。其次,紅黑樹是一棵基本平衡的樹。注意這裡的詞語是 基本平衡 平衡二叉樹的概念是,左子樹和右子樹的深度差小於等於1。而紅黑樹並不是嚴格的平衡樹,它只是基本平衡。平衡到什麼程度呢?最大深度小於等於最...
演算法導論 13 1紅黑樹的性質
紅黑樹的性質 1 每個結點或是紅的,或是黑的。2 根節點是黑的。3 每個葉子結點是黑的。4 如果乙個結點是紅的,則它的 5 對每個結點,從該結點到其子孫結點的所有路徑上包含相同數目的黑結點。一顆有n個節點的紅黑樹的高度至少為2lg n 1 練習 13.1 2 對於書上13 1圖中插入36。如果結點顏...