天天看點

Java - java.util.TreeMap(紅黑樹)

參考資料:​​資料結構 - 常見的樹​​

紅黑樹:

紅黑樹是一種近似平衡的二叉查找樹,它能夠確定任何一個節點的左右子樹的高度差不會超過二者中較低那個的一陪。具體來說,紅黑樹是滿足如下條件的二叉查找樹(binary search tree):

  1. 每個節點要麼是紅色,要麼是黑色。
  2. 根節點必須是黑色
  3. 紅色節點不能連續(也即是,紅色節點的孩子和父親都不能是紅色)。
  4. 對于每個節點,從該點至null(樹尾端)的任何路徑,都含有相同個數的黑色節點
Java - java.util.TreeMap(紅黑樹)

左旋:

Java - java.util.TreeMap(紅黑樹)

右旋:

Java - java.util.TreeMap(紅黑樹)

後繼:

  1. t的右子樹不空,則t的後繼是其右子樹中最小的那個元素。
  2. t的右孩子為空,則t的後繼是其第一個向左走的祖先。
Java - java.util.TreeMap(紅黑樹)

getEntry

put

調整