紅黑樹是乙個二叉查詢樹,不像平衡二叉樹要求所有節點左右子樹高度差不超過1,紅黑樹只要求從乙個節點到所有葉結點的路徑中,最長路徑不超過最短路徑的兩倍,所以紅黑樹只追求樹的大致平衡。
因為對樹平衡程度的不同要求,平衡二叉樹在插入和刪除的過程中會花費比較大的代價來維護樹的平衡,所以平衡二叉樹不適合插入、刪除太多的場景。而紅黑樹只要求弱平衡,它做到了當插入和刪除時,只需最多旋轉3次就能實現一定程度的平衡,所以能將查詢、插入和刪除的時間複雜度維持在對數級別(o(logn))。
先講上面紅黑樹與平衡二叉樹的區別,再講下面的性質。
紅黑樹性質:
上面的性質就保證了從乙個節點到葉結點的最長路徑不會比這個節點到葉結點的最短路徑大兩倍。
樹調整規則:紅黑樹調整規則的變化對應性質的變化,調整的方式也主要是左右旋轉。比較特殊的有:插入乙個節點時,當父節點和叔叔節點都是紅色的時候,會把父節點和叔叔節點的顏色變成黑色,然後把祖先節點的顏色變成紅色,之後再繼續進行判斷。
當衝突鍊錶的長度超過8並且hash表的長度》=64時,會將鍊錶轉換成紅黑樹。
參考:
面試題 vector map 紅黑樹 雜湊表
vector的資料安排以及操作方式,與array非常相似。兩者的唯一區別在於空間的運用的靈活性。array是靜態空間,一旦配置了就不能改變 vector是動態空間,隨著元素的加入,它的內部機制會自行擴充空間以容納新元素。因此,vector的運用對於記憶體的合理利用與運用的靈活性有很大的幫助。vect...
B樹,B 樹,紅黑樹 資料庫常見面試題
b樹,b 樹,紅黑樹 資料庫常見面試題 hash索引和b 樹索引 hash索引等值查詢效率高,但是不能排序,因此不能進行範圍查詢 b 樹索引資料有序,能夠進行範圍查詢 二叉查詢樹,查詢到指定資料,效率其實很高logn。但是資料庫索引檔案有可能很大,關係型資料儲存了上億條資料,索引檔案大則上g,不可能...
面試題相關
一些位址 osi七層功能及協議 資料鏈路層是如何定址的?傳送方 已知接收方ip arp 接收方mac位址 交換機尋找該mac位址所在埠,把幀往這個埠 mac通過rarp轉為ip位址。可靠通訊是靠哪一層來完成的?網路層 tcp協議 100base t 100mbps,baseband,雙絞線對。簡而言...