算法導論中的紅黑樹:
1:每個結點都爲紅色或者黑色
2:根意結點爲黑色
3:每一個葉子結點(最後的空節點)是黑色
4:如果一個意結點爲紅色,那麼它的孩子結點爲黑色
5:從任意結點到葉子結點經過的黑結點都一樣(對每個結點,從該結點到其子孫結點的所有路徑上包含相同數目的黑結點。)
紅黑樹:二分搜索樹–>特殊機制
2-3樹:二分搜索樹–>特殊機制
紅黑樹與2-3樹是等價的
2-3樹:
滿足二分搜索樹的基本性質;
結點可以存放一個元素或者兩個元素
2-3樹添加元素不會將元素添加到空結點上【產生結點融合】
性質:2-3樹是一棵絕對平衡的樹
2-3樹:
2-3樹添加結點:
插入結點的幾種情況:
1:如果插入2-結點
2:如果插入3-結點
3:如果插入3-結點,父親結點2-結點
4:如果插入3-結點,父親結點爲3-結點
紅黑樹與2-3樹
紅黑樹與2-3樹的轉換:
紅黑樹添加新元素:
紅黑樹與其他性能總結比較:
1:對於完全隨機的數,普通二分搜索樹很好用
缺點:極端情況下退化成鏈表(或高度不平衡)
2:查詢較多情況下,AVL很好用
3:紅黑樹統計性能更優,
4:紅黑樹更擅長增加和刪除較多的情況,但是綜合增刪改查所有操作,紅黑樹更有優勢【2logn高度】
5:TreeMap、TreeSet 底層實現:紅黑樹
Splay Tree(伸展樹):
另外一種統計性能優秀的樹結構
局部性原理:剛被訪問的內容下次高概率被再次訪問