爲什麼用紅黑樹不用二叉樹?
紅黑樹也是一種二叉查找樹。當於是平衡二叉樹,它是一種經典高效的算法
二叉樹的特點是,左節點小於等於根節點,右節點大於等於根節點。比如插入9,8,7這三個值,
隨着數據越來越多,左節點就會越來越長,二叉樹的查找就會越來越低,等同於遍歷,二分查找就失去了意義。
紅黑樹就避免了這個問題,如果左右節點無值,可以使用null代替,很好的保證了集合的操作的時間爲O(lgn)。
紅黑樹的特質
- 每個結點要麼是紅的,要麼是黑的。
- 根結點是黑的。
- 每個葉結點(葉結點即指樹尾端NIL指針或NULL結點)是黑的。
- 如果一個結點是紅的,那麼它的子節點都是黑的。
- 對於任一結點而言,其到葉結點樹尾端NIL指針的每一條路徑都包含相同數目的黑結點。