HashMap爲什麼要底層使用紅黑樹?

爲什麼用紅黑樹不用二叉樹?

    紅黑樹也是一種二叉查找樹。當於是平衡二叉樹,它是一種經典高效的算法

    二叉樹的特點是,左節點小於等於根節點,右節點大於等於根節點。比如插入9,8,7這三個值,

 

隨着數據越來越多,左節點就會越來越長,二叉樹的查找就會越來越低,等同於遍歷,二分查找就失去了意義。

紅黑樹就避免了這個問題,如果左右節點無值,可以使用null代替,很好的保證了集合的操作的時間爲O(lgn)。

紅黑樹的特質

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章