紅黑樹(shù)分享大綱一

樹(shù)

樹(shù)晒夹,這種結(jié)構(gòu)在計(jì)算機(jī)領(lǐng)域應(yīng)用非常廣泛,便于管理和查找僚稿。
樹(shù)的關(guān)鍵在與“分治”思想凡桥。我理解的分治思想就是將事務(wù)進(jìn)行分類(lèi)歸納,使得具有規(guī)律或者特征的來(lái)把數(shù)據(jù)或者事務(wù)聯(lián)系起來(lái)蚀同,這樣在查找或者使用的時(shí)候就可以有目的的忽略不需要浪費(fèi)精力的部分缅刽,從而提高效率。
例如:文件系統(tǒng)(B+樹(shù))蠢络,DB索引(B+樹(shù)衰猛、哈希樹(shù)),treemap(紅黑樹(shù))刹孔,堆(完全二叉樹(shù))

二叉樹(shù)

每個(gè)節(jié)點(diǎn)只有兩個(gè)子節(jié)點(diǎn)啡省。
二叉查找樹(shù),關(guān)鍵點(diǎn)是樹(shù)的深度髓霞。
堆結(jié)構(gòu)就是一個(gè)完全二叉樹(shù)卦睹,(gc)。
二叉樹(shù)有很多種:紅黑樹(shù)酸茴,AVL樹(shù)分预,堆

AVL樹(shù)

1.本身首先是一棵二叉搜索樹(shù)。
2.帶有平衡條件:每個(gè)結(jié)點(diǎn)的左右子樹(shù)的高度之差的絕對(duì)值(平衡因子)最多為1薪捍。

1笼痹、二叉樹(shù)的深度為h,除第 h 層外酪穿,其它各層 (1~h-1) 的結(jié)點(diǎn)數(shù)都達(dá)到最大個(gè)數(shù)
2凳干、第 h 層所有的結(jié)點(diǎn)都連續(xù)集中在最左邊

紅黑樹(shù)

樹(shù)的旋轉(zhuǎn)

1、左旋

270024492492764.gif

圖片引用http://www.cnblogs.com/yangecnu/p/Introduce-Red-Black-Tree.html
2被济、右旋

270025006402285.gif

圖片引用http://www.cnblogs.com/yangecnu/p/Introduce-Red-Black-Tree.html

紅黑樹(shù)性質(zhì)

1救赐、任何一個(gè)節(jié)點(diǎn)都有顏色,黑色或者紅色
2、根節(jié)點(diǎn)是黑色的
3经磅、紅節(jié)點(diǎn)的子節(jié)點(diǎn)必須為黑節(jié)點(diǎn)
4泌绣、任何一個(gè)節(jié)點(diǎn)向下遍歷到其子孫的葉子節(jié)點(diǎn),所經(jīng)過(guò)的黑節(jié)點(diǎn)個(gè)數(shù)必須相等
5预厌、空節(jié)點(diǎn)被認(rèn)為是黑色的
6阿迈、新插入節(jié)點(diǎn)所帶顏色為紅色,需要根據(jù)以上性質(zhì)進(jìn)行調(diào)整
二叉查找樹(shù)的遍歷轧叽、查找苗沧,還有基于兩者的排序、contain等方法的實(shí)現(xiàn)炭晒,對(duì)于所有的類(lèi)型的二叉查找樹(shù)都是相同的待逞。

插入

對(duì)于二叉查找樹(shù)的插入操作基本操作都是一樣的,都是先通過(guò)二分查找法找到所需要插入數(shù)據(jù)對(duì)應(yīng)的位置网严,插入節(jié)點(diǎn)识樱。關(guān)鍵的不同是:不同的查找樹(shù)在插入節(jié)點(diǎn)后,為了保持相應(yīng)的性質(zhì)所需進(jìn)行的在平衡操作屿笼。
1牺荠、對(duì)于新節(jié)點(diǎn)的插入有如下三個(gè)關(guān)鍵地方:
(1)插入新節(jié)點(diǎn)總是紅色節(jié)點(diǎn) 。
(2)如果插入節(jié)點(diǎn)的父節(jié)點(diǎn)是黑色, 能維持性質(zhì) 驴一。
(3)如果插入節(jié)點(diǎn)的父節(jié)點(diǎn)是紅色, 破壞了性質(zhì). 故插入算法就是通過(guò)重新著色或旋轉(zhuǎn), 來(lái)維持性質(zhì) 休雌。
由此得出:只有新插入節(jié)點(diǎn)的父節(jié)點(diǎn)為紅色節(jié)點(diǎn)的時(shí)候需要來(lái)進(jìn)行調(diào)整。
2肝断、紅黑樹(shù)插入
(1)(2)(3)
3杈曲、紅黑樹(shù)插入的再平衡操作
父節(jié)點(diǎn)為紅色節(jié)點(diǎn)的場(chǎng)景分析
(1)(2)(3)

刪除

刪除的過(guò)程也同插入操作,首先通過(guò)二分查找找到對(duì)應(yīng)的節(jié)點(diǎn)胸懈,刪除后再平衡
1担扑、將紅黑樹(shù)當(dāng)作一顆二叉查找樹(shù),將節(jié)點(diǎn)刪除趣钱。
(1) 被刪除節(jié)點(diǎn)沒(méi)有兒子(葉節(jié)點(diǎn))涌献,直接將該節(jié)點(diǎn)刪除就OK了。
(2) 被刪除節(jié)點(diǎn)只有一個(gè)兒子首有,直接刪除該節(jié)點(diǎn)燕垃,并用該節(jié)點(diǎn)的唯一子節(jié)點(diǎn)頂替它的位置與被刪節(jié)點(diǎn)的父節(jié)點(diǎn)相連。
(3) 被刪除節(jié)點(diǎn)有兩個(gè)兒子井联,先找出它的后繼節(jié)點(diǎn)卜壕;然后把“它的后繼節(jié)點(diǎn)的內(nèi)容”復(fù)制給“該節(jié)點(diǎn)的內(nèi)容”;之后烙常,刪除“它的后繼節(jié)點(diǎn)”轴捎。在這里,后繼節(jié)點(diǎn)相當(dāng)于替身,在將后繼節(jié)點(diǎn)的內(nèi)容復(fù)制給"被刪除節(jié)點(diǎn)"之后侦副,再將后繼節(jié)點(diǎn)刪除侦锯。這樣就巧妙的將問(wèn)題轉(zhuǎn)換為"刪除后繼節(jié)點(diǎn)"的情況了,下面就考慮后繼節(jié)點(diǎn)秦驯。 在"被刪除節(jié)點(diǎn)"有兩個(gè)非空子節(jié)點(diǎn)的情況下率触,它的后繼節(jié)點(diǎn)只可能是沒(méi)有兒子的葉節(jié)點(diǎn)或者只有一個(gè)右兒子。若沒(méi)有兒子汇竭,則按"情況① "進(jìn)行處理;若只有一個(gè)兒子穴张,則按"情況② "進(jìn)行處理细燎。
(1)(2)(3)(4)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市皂甘,隨后出現(xiàn)的幾起案子玻驻,更是在濱河造成了極大的恐慌,老刑警劉巖偿枕,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件璧瞬,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡渐夸,警方通過(guò)查閱死者的電腦和手機(jī)嗤锉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)墓塌,“玉大人瘟忱,你說(shuō)我怎么就攤上這事∩淮保” “怎么了访诱?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)韩肝。 經(jīng)常有香客問(wèn)我触菜,道長(zhǎng),這世上最難降的妖魔是什么哀峻? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任涡相,我火速辦了婚禮,結(jié)果婚禮上谜诫,老公的妹妹穿的比我還像新娘漾峡。我一直安慰自己,他們只是感情好喻旷,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布生逸。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪槽袄。 梳的紋絲不亂的頭發(fā)上烙无,一...
    開(kāi)封第一講書(shū)人閱讀 51,208評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音遍尺,去河邊找鬼截酷。 笑死,一個(gè)胖子當(dāng)著我的面吹牛乾戏,可吹牛的內(nèi)容都是我干的迂苛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼鼓择,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼三幻!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起呐能,我...
    開(kāi)封第一講書(shū)人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤念搬,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后摆出,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體朗徊,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年偎漫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了爷恳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡骑丸,死狀恐怖舌仍,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情通危,我是刑警寧澤铸豁,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站菊碟,受9級(jí)特大地震影響节芥,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜逆害,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一头镊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧魄幕,春花似錦相艇、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)留储。三九已至,卻和暖如春咙轩,著一層夾襖步出監(jiān)牢的瞬間获讳,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工活喊, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留丐膝,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓钾菊,卻偏偏與公主長(zhǎng)得像帅矗,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子煞烫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 樹(shù)的概述 樹(shù)是一種非常常用的數(shù)據(jù)結(jié)構(gòu)损晤,樹(shù)與前面介紹的線(xiàn)性表,棧红竭,隊(duì)列等線(xiàn)性結(jié)構(gòu)不同,樹(shù)是一種非線(xiàn)性結(jié)構(gòu) 1.樹(shù)的定...
    Jack921閱讀 4,452評(píng)論 1 31
  • 0.目錄 1.算法導(dǎo)論的紅黑樹(shù)本質(zhì)上是2-3-4樹(shù) 2.紅黑樹(shù)的結(jié)構(gòu)和性質(zhì) 3.紅黑樹(shù)的插入 4.紅黑樹(shù)的刪除 5...
    王偵閱讀 2,479評(píng)論 1 2
  • 1 序 2016年6月25日夜喘落,帝都茵宪,天下著大雨,拖著行李箱和同學(xué)在校門(mén)口照了最后一張合照瘦棋,搬離寢室打車(chē)去了提前租...
    RichardJieChen閱讀 5,096評(píng)論 0 12
  • 文/歲月削 [01] 剛來(lái)簡(jiǎn)書(shū)的時(shí)候在一次征文活動(dòng)中認(rèn)識(shí)了一個(gè)英語(yǔ)專(zhuān)業(yè)的學(xué)姐赌朋,相比于同年齡段的人凰狞,她的語(yǔ)言和思維方...
    歲月削閱讀 753評(píng)論 3 7
  • 現(xiàn)實(shí)總是令人悲哀,一切都是暫時(shí)的沛慢,轉(zhuǎn)瞬即逝赡若,而那逝去的,將變得多么可愛(ài)团甲!
    天明已曉閱讀 225評(píng)論 0 0