《算法導論》筆記 第13章 13.1 紅黑樹的性質

【筆記】


紅黑樹中每一個結點包含五個域:color,key,left,right和p。二叉樹

若是某結點沒有一個子結點或父結點,則該域指向NIL。im

咱們把NIL視爲二叉樹的外結點(葉子),而帶關鍵字的結點視爲內結點。img


一棵二叉樹若是知足下面的紅黑性質,則爲一棵紅黑樹:紅黑樹

1) 每一個結點或是紅的,或是黑的。集合

2) 根結點是黑的。時間

3) 每一個葉結點(NIL)是黑的。co

4) 若是一個結點是紅的,則它的兩個兒子都是黑的。

5) 對每一個結點,從該結點到其子孫結點的全部路徑上包含相同數目的黑結點。


採用哨兵來表明NIL,它的color域爲BLACK,其它域爲任意值。


從某個結點x出發(不包括該結點)到達一個葉結點的任意一條路徑上,黑色結點的個數稱爲該結點x的黑高度,用bh(x)表示。


引理:一顆有n個內結點的紅黑樹的高度至多爲2lg(n+1)。

動態集合操做SEARCH、MINIMUM、MAXIMUM、SUCCESSOR和PREDECESSOR可用紅黑樹在O(lgn)時間內實現,由於這些操做在一棵高度爲h的二叉查找樹上的運行時間爲O(h),而包含n個結點的紅黑樹又是高度爲O(lgn)的查找樹。


【練習】


13.1-1 畫出在關鍵字集合{1,2,...,15}上高度爲3的徹底二叉查找樹。以三種不一樣方式,向圖中加入NIL葉結點並對各結點着色,是所得的紅黑樹的黑高度分別爲2,3和4。





13.1-2 畫圖出調用TREE-INSERT插入關鍵字36後的結果。若是插入的結點被標爲紅色,所得的樹是否仍是一棵紅黑樹?若是該節點被標爲黑色呢?




黑:不知足性質5)

紅:不知足性質4)


13.1-3 定義鬆弛紅黑樹爲知足紅黑性質1,3,4和5的二叉查找樹。換言之,根部能夠是紅色或是黑色。考慮一棵根是紅色的鬆弛紅黑樹T。若是將T的根部標爲黑色而其餘都不變,則所獲得的是否仍是一顆紅黑樹?

根部標爲黑色,知足了性質2),沒有破壞性質4),從根結點到子孫結點上的黑結點數不變性質5)不變。

所以仍是一顆紅黑樹。


13.1-4 假設將一顆紅黑樹的每個紅結點吸取到它的黑色父結點中,來讓紅結點的子女變成黑色父結點的子女。當一個黑結點的全部紅色子女都被吸取後,其可能的度是多少?此結果樹的葉子深度怎樣?

不吸取:度爲2

吸取一個:度可能爲3

吸取兩個:度可能爲4

葉子深度爲紅黑樹黑高度。


13.1-5 證實:在一棵紅黑樹中,從某結點x到其後代葉結點的全部簡單路徑中,最長的一條是最短一條的至多兩倍。

設最短路徑爲k個黑結點:●●●●

由性質4沒有連續兩個紅結點,性質5路徑上黑結點數目相同,則最長路徑:○●○●○●○●

所以最長的一條是最短一條的至多兩倍。


13.1-6 在一棵高度爲k的紅黑樹中,內結點最多可能有多少個?最少可能有多少個?

易知,最多可能有2^2k-1

最少可能有2^k-1


13.1-7 請描述出一棵在n個關鍵字上構造出來的紅黑樹,使其中紅的內結點數與黑的內結點數的比值最大。這個比值是多少?具備最小可能比例的樹又是怎樣?此比值是多少?

黑紅黑紅交替。2:1。

全黑最小。0

相關文章
相關標籤/搜索