說道紅黑樹先講什么是二叉樹
二叉樹簡單來說就是 每一個節上可以關聯倆個子節點
大概就是這樣子:
紅黑樹
紅黑樹是一種特殊的二叉查找樹。紅黑樹的每個結點上都有存儲位表示結點的顏色,可以是紅(Red)或黑(Black)。
紅黑樹的每個結點是黑色或者紅色。當是不管怎么樣他的根結點是黑色。每個葉子結點(葉子結點代表終結、結尾的節點)也是黑色 [注意:這里葉子結點,是指為空(NIL或NULL)的葉子結點!]。
如果一個結點是紅色的,則它的子結點必須是黑色的。
每個結點到葉子結點NIL所經過的黑色結點的個數一樣的。[確保沒有一條路徑會比其他路徑長出倆倍,所以紅黑樹是相對接近平衡的二叉樹的!]
紅黑樹的基本操作是添加、刪除。在對紅黑樹進行添加或刪除之后,都會用到旋轉方法。為什么呢?道理很簡單,添加或刪除紅黑樹中的結點之后,紅黑樹的結構就發生了變化,可能不滿足上面三條性質,也就不再是一顆紅黑樹了,而是一顆普通的樹。而通過旋轉和變色,可以使這顆樹重新成為紅黑樹。簡單點說,旋轉和變色的目的是讓樹保持紅黑樹的特性。