數(shù)據(jù)結(jié)構(gòu) - 紅黑樹

1. 紅黑樹(Red Black Tree)

(1) 定義

紅黑樹(Red Black Tree):是一種自平衡的二叉搜索樹倘是,也叫平衡二叉B樹般婆。

  • 紅黑樹必須滿足一下5條性質(zhì):
  1. 節(jié)點(diǎn)是 \color{red}{Red} 或者 \color{black}{Black}
  2. 根節(jié)點(diǎn)是 \color{black}{Black}
  3. 葉子節(jié)點(diǎn)(外部節(jié)點(diǎn)跛梗,空節(jié)點(diǎn))都是 \color{black}{Black}
  4. \color{red}{Red}節(jié)點(diǎn)的子節(jié)點(diǎn)都是 \color{black}{Black}
    \color{red}{Red}節(jié)點(diǎn)的parent都是 \color{black}{Black}
    從根節(jié)點(diǎn)到 葉子節(jié)點(diǎn) 的所有路徑上不能有2個(gè)連續(xù)的\color{red}{Red}節(jié)點(diǎn)
  5. 從任一節(jié)點(diǎn)到 葉子節(jié)點(diǎn) 的所有路徑都包含相同數(shù)目的\color{black}{Black}節(jié)點(diǎn)
紅黑樹

(2) 紅黑樹的等價(jià)變換

紅黑樹 和 4階B樹 (2, 4)樹 具有等價(jià)性

  • \color{black}{Black}節(jié)點(diǎn)與它的\color{red}{Red}子節(jié)點(diǎn)融合在一起关串,形成1個(gè)B樹節(jié)點(diǎn)
  • 紅黑樹的\color{black}{Black}節(jié)點(diǎn)個(gè)數(shù) 與 4階B樹的節(jié)點(diǎn)總個(gè)數(shù) 相等
紅黑樹
等價(jià)變換成 4階B樹

(3) 紅黑樹的添加刪除

  • B樹中训枢,新元素必定是添加到 葉子節(jié)點(diǎn)中
  • B樹中再膳,最后真正被刪除的元素都在 葉子節(jié)點(diǎn)中

(4) 平均時(shí)間復(fù)雜度

  • 搜索:O(logn)
  • 添加:O(logn)腮考,O(1)次的旋轉(zhuǎn)操作
  • 刪除:O(logn)雇毫,O(1)次的旋轉(zhuǎn)操作

(5) AVL樹 和 紅黑樹

AVL樹

  • 平衡標(biāo)準(zhǔn)比較嚴(yán)格:每個(gè)左右子樹的高度差不超過1
  • 最大高度是:1.44 * log_2(n + 2) - 1.328(100萬個(gè)節(jié)點(diǎn),最大樹高28)
  • 搜索踩蔚、添加棚放、刪除都是O(logn)復(fù)雜度
    添加僅需O(1)次旋轉(zhuǎn)調(diào)整,刪除最多需要O(logn)次旋轉(zhuǎn)調(diào)整

紅黑樹

  • 平衡標(biāo)準(zhǔn)比較寬松:沒有一條路徑會(huì)大于其他路徑的2倍
  • 最大高度是:2 * log_2(n + 1)(100萬個(gè)節(jié)點(diǎn)馅闽,最大樹高40)
  • 搜索飘蚯、添加、刪除都是O(logn)復(fù)雜度
    添加福也、刪除僅需O(1)次旋轉(zhuǎn)調(diào)整
  • 大量搜索時(shí)使用AVL樹局骤,搜索、添加暴凑、刪除次數(shù)差不多時(shí)使用紅黑樹
  • 紅黑樹犧牲部分平衡性峦甩,平均統(tǒng)計(jì)性能優(yōu)于AVL樹
  • 實(shí)際應(yīng)用中更多選擇使用 紅黑樹

(6) 樹的比較

10, 35, 47, 11, 5, 57, 39, 14, 27, 26, 84, 75, 63, 41, 37, 24, 96

二叉搜索樹BST
AVL樹
紅黑樹RBTree
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市搬设,隨后出現(xiàn)的幾起案子穴店,更是在濱河造成了極大的恐慌撕捍,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件泣洞,死亡現(xiàn)場(chǎng)離奇詭異忧风,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)球凰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門狮腿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人呕诉,你說我怎么就攤上這事缘厢。” “怎么了甩挫?”我有些...
    開封第一講書人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵贴硫,是天一觀的道長。 經(jīng)常有香客問我伊者,道長英遭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任亦渗,我火速辦了婚禮挖诸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘法精。我一直安慰自己多律,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開白布搂蜓。 她就那樣靜靜地躺著狼荞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪洛勉。 梳的紋絲不亂的頭發(fā)上粘秆,一...
    開封第一講書人閱讀 51,775評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音收毫,去河邊找鬼。 笑死殷勘,一個(gè)胖子當(dāng)著我的面吹牛此再,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播玲销,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼输拇,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了贤斜?” 一聲冷哼從身側(cè)響起策吠,我...
    開封第一講書人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤逛裤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后猴抹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體带族,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年蟀给,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蝙砌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡跋理,死狀恐怖择克,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情前普,我是刑警寧澤肚邢,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站拭卿,受9級(jí)特大地震影響道偷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜记劈,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一勺鸦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧目木,春花似錦换途、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至誓禁,卻和暖如春懈息,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背摹恰。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來泰國打工辫继, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人俗慈。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓姑宽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親闺阱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子炮车,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356

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