這一篇解決《算法導論》中紅黑樹章節的部分習題,在上一篇自己親自實現紅黑樹后,解決這些題目就輕松多了。 練習13.1-6 在一棵黑高度為 $k$ 的紅黑樹中,內節點最多有多少個?最少有多少個? 黑高度為 $k$ 的二叉樹,全高度最小為 $k+1$,最大為 $2k+2$ 。內節點最多 ...
順序統計樹和區間樹都是對紅黑樹的擴張:通過在節點添加字段完成其他的功能,如果該字段可以在 O 時間內維護,就能夠不影響紅黑樹本身操作效率漸進量級。 順序統計樹 順序統計樹是紅黑樹的擴展:在紅黑樹的每個節點額外維護一個域size,記錄以該節點為根的子樹中的總結點個數。順序統計數具有這樣的功能:在 O lg n 時間內找到樹中所有元素的第 i 個順序量。以下是一棵順序統計樹: 練習 . 寫出一個遞歸過 ...
2013-01-29 17:10 0 3137 推薦指數:
這一篇解決《算法導論》中紅黑樹章節的部分習題,在上一篇自己親自實現紅黑樹后,解決這些題目就輕松多了。 練習13.1-6 在一棵黑高度為 $k$ 的紅黑樹中,內節點最多有多少個?最少有多少個? 黑高度為 $k$ 的二叉樹,全高度最小為 $k+1$,最大為 $2k+2$ 。內節點最多 ...
1. 簡介 在之前我們學習了紅黑樹,今天再學習一種樹——B樹。它與紅黑樹有許多類似的地方,比如都是平衡搜索樹, 但它們在功能和結構上卻有較大的差別。 從功能上看,B樹是為磁盤或其他存儲設備設計的,能夠有效的降低磁盤的I/O操作數,因此我們經常看到有許多數據庫系統使用B樹或B樹的變種作為儲存 ...
紅黑樹是一棵二叉搜索樹,每個結點上增加了一個屬性來存儲顏色是紅色還是黑色,紅黑樹可以確保沒有一條路徑會比其他路徑長出2倍,所以近似可以認為是平衡的。 每個結點包含5個屬性:color, key, left, right, p。如果一個結點沒有子結點或者父結點,則該結點的相應指針屬性 ...
《算法導論》描述了一個關於區間樹的重疊搜索,這里簡單描述下原理,然后給出代碼。 區間樹是建立在紅黑樹的基礎上,額外維護了一個信息域。在《算法導論》中,已經給出了任何額外信息域的維護,是相似的證明。所以,建議不懂得,先試着實現一個基本的,帶size域的紅黑樹(書上已經給出原理),然后再擴展到區間樹 ...
概念: 區間樹是在紅黑樹基礎上進行擴展得到的支持以區間為元素的動態集合的操作, 每個節點的關鍵值是區間的左端點。通過建立這種特定的結構,可是使區間的元素的查找和插入都可以在O(lgn)的時間內完成。 相比於基礎的數據結構,增加了一個max[x],即以x為根的子樹中所有區間的斷點 ...
區間樹 注意:區間樹和線段樹不一樣哦,線段樹是一種特殊的區間樹。 區間樹: 區間樹是在紅黑樹基礎上進行擴展得到的支持以區間為元素的動態集合的操作,其中每個節點的關鍵值是區間的左端點。通過建立這種特定的結構,可是使區間的元素的查找和插入都可以在O(lgn)的時間內完成。相比於基礎的紅黑樹 ...
本文首發於我的公眾號 Linux雲計算網絡(id: cloud_dev) ,專注於干貨分享,號內有 10T 書籍和視頻資源,后台回復 「1024」 即可領取,歡迎大家關注,二維碼文末可以掃。 一、高級數據結構 本章以后到第21章(並查集)隸屬於高級數據結構的內容。前面 ...
1. 什么是紅黑樹 (1) 簡介 上一篇我們介紹了基本動態集合操作時間復雜度均為O(h)的二叉搜索樹。但遺憾的是,只有當二叉搜索樹高度較低時,這些集合操作才會較快;即當樹的高度較高(甚至一種極端情況是樹變成了1條鏈)時,這些集合操作並不比在鏈表上執行 ...