平衡樹和紅黑樹的區別是什么?為什么有了平衡樹還要設計出來紅黑樹?


出處:https://www.cnblogs.com/myseries/p/10662710.html

紅黑樹的規則:

1)每個結點要么是紅的,要么是黑的。
2)根結點是黑的。
3)每個葉結點(葉結點即指樹尾端NIL指針或NULL結點)是黑的。
4)如果一個結點是紅的,那么它的倆個兒子都是黑的。
5)對於任一結點而言,其到葉結點樹尾端NIL指針的每一條路徑都包含相同數目的黑結點。

  

  現在想想,我的理解是平衡樹(AVL)更平衡,結構上更加直觀,時間效能針對讀取而言更高,但是維護起來比較麻煩!!!(插入和刪除之后,都需要rebalance)。但是,紅黑樹通過它規則的設定,確保了插入和刪除的最壞的時間復雜度是O(log N) 。

設計紅黑樹的目的,就是解決平衡樹的維護起來比較麻煩的問題,紅黑樹,讀取略遜於AVL,維護強於AVL,每次插入和刪除的平均旋轉次數應該是遠小於平衡樹。

小結一下:

  能用平衡樹的地方,就可以用紅黑樹。用紅黑樹之后,讀取略遜於AVL,維護強於AVL。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM