紅黑樹核心之節(jié)點刪除

紅黑樹刪除規(guī)則:
1:如果刪除節(jié)點是葉子節(jié)點
(1)如果刪除節(jié)點是紅色的啤握,那就直接刪除晶框,不做其它操作
(2)如果刪除節(jié)點是黑色的,那么就創(chuàng)建一個空節(jié)點來頂替刪除節(jié)點蹲蒲,然后按照后面的調整步驟進行調整
2:如果刪除節(jié)點有一個子節(jié)點侵贵,把后來頂替被刪節(jié)點的那個節(jié)點成為頂替節(jié)點,如果刪除節(jié)點為黑卡睦,而且頂替節(jié)點也為黑,那么把頂替節(jié)點當作當前節(jié)點表锻,然后按照后面的調整步驟進行調整。
3:如果刪除節(jié)點有兩個子節(jié)點显歧,那么确镊,找到其中序后繼節(jié)點,把這兩個節(jié)點的數據交換一下蕾域,不要復制顏色,也不改變其原有的父子等關系,然后重新進行刪除厢绝。由于其中序后繼節(jié)點只可能是葉子節(jié)點或者只有一個子節(jié)點,因此回到前面兩種情況懈万。

紅黑樹刪除調整步驟:
1:當前節(jié)點是紅靶病,那么:直接把當前節(jié)點變成黑色,結束
2:當前節(jié)點是黑且是根節(jié)點涕侈,那么:什么都不用做煤辨,結束
3:當前節(jié)點是黑且兄弟節(jié)點為紅色,當前節(jié)點為父節(jié)點的左子節(jié)點众辨,那么:把兄弟結點變成父節(jié)點的顏色,把父節(jié)點變成紅色郊闯,然后在父節(jié)點上做左旋,再重新開始判斷团赁。
4:當前節(jié)點是黑且兄弟節(jié)點為紅色然痊,當前節(jié)點為父節(jié)點的右子節(jié)點,那么:把兄弟結點變成父節(jié)點的顏色剧浸,把父節(jié)點變成紅色,然后在父節(jié)點上做右旋嫌变,再重新開始判斷躬它。
5:當前節(jié)點是黑且父節(jié)點和兄弟節(jié)點都為黑色,兄弟節(jié)點的兩個子節(jié)點全為黑色冯吓,那么:把兄弟節(jié)點變紅,然后把父節(jié)點當成新的當前節(jié)點凸舵,再重新開始判斷
6:當前節(jié)點是黑且兄弟節(jié)點為黑色失尖,兄弟節(jié)點的兩個子節(jié)點都是黑色,但是父節(jié)點是紅色菇夸,那么:就把兄弟節(jié)點變紅仪吧,父節(jié)點變黑,結束
7:當前節(jié)點是黑且兄弟節(jié)點為黑色薯鼠,兄弟節(jié)點的左子是紅色,右子是黑色吭从,而且當前節(jié)點是父節(jié)點的左子節(jié)點恶迈,那么:把兄弟節(jié)點變紅谱醇,兄弟左子節(jié)點變黑步做,然后對兄弟節(jié)點進行右旋,再重新開始判斷
8:當前節(jié)點是黑且兄弟節(jié)點為黑色煮剧,兄弟節(jié)點的左子是黑色将鸵,右子是紅色,而且當前節(jié)點是父節(jié)點的右子節(jié)點顶掉,那么:把兄弟節(jié)點變紅,兄弟右子節(jié)點變黑宰闰,然后對兄弟節(jié)點左旋簿透,再重新開始判斷
9:當前節(jié)點是黑且兄弟節(jié)點為黑色,兄弟節(jié)點的右子是紅色咐容,左子的顏色任意蚂维,而且當前節(jié)點是父節(jié)點的左子節(jié)點路狮,那么:把兄弟節(jié)點變成當前節(jié)點父節(jié)點的顏色,把當前節(jié)點父節(jié)點變黑奄妨,兄弟節(jié)點右子變黑,然后以當前節(jié)點的父節(jié)點為支點進行左旋评雌,結束直焙。
10:當前節(jié)點是黑且兄弟節(jié)點為黑色,兄弟節(jié)點的左子是紅色斤吐,右子的顏色任意,而且當前節(jié)點是父節(jié)點的右子節(jié)點和措,那么:把兄弟節(jié)點變成當前節(jié)點父節(jié)點的顏色派阱,把當前節(jié)點父節(jié)點變黑,兄弟節(jié)點左子變黑贫母,然后以當前節(jié)點的父節(jié)點為支點進行右旋,結束彩届。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末誓酒,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子寨辩,更是在濱河造成了極大的恐慌歼冰,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件甸怕,死亡現場離奇詭異腮恩,居然都是意外死亡秸滴,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門咒唆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來全释,“玉大人误债,你說我怎么就攤上這事符衔≡阍” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵形帮,是天一觀的道長周叮。 經常有香客問我,道長仿耽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任君躺,我火速辦了婚禮棕叫,結果婚禮上,老公的妹妹穿的比我還像新娘俺泣。我一直安慰自己完残,他們只是感情好,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布熟掂。 她就那樣靜靜地躺著铝宵,像睡著了一般鹏秋。 火紅的嫁衣襯著肌膚如雪亡笑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天百拓,我揣著相機與錄音,去河邊找鬼决帖。 笑死蓖捶,一個胖子當著我的面吹牛,可吹牛的內容都是我干的俊鱼。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼细睡,長吁一口氣:“原來是場噩夢啊……” “哼帝火!你這毒婦竟也來了?” 一聲冷哼從身側響起萌京,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤知残,失蹤者是張志新(化名)和其女友劉穎比庄,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體佳窑,經...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡神凑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年溉委,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坡慌。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡藻三,死狀恐怖跪者,靈堂內的尸體忽然破棺而出熄求,到底是詐尸還是另有隱情,我是刑警寧澤柜蜈,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布指巡,位于F島的核電站,受9級特大地震影響秘噪,放射性物質發(fā)生泄漏勉耀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一至壤、第九天 我趴在偏房一處隱蔽的房頂上張望枢纠。 院中可真熱鬧,春花似錦晋渺、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至照皆,卻和暖如春鸠信,著一層夾襖步出監(jiān)牢的瞬間纵寝,已是汗流浹背星立。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工绰垂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人胧沫。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓占业,卻偏偏與公主長得像,于是被迫代替她去往敵國和親谦疾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內容