2-3-4樹及2-3樹的總結(jié)

1. 2-3-4樹及2-3樹的定義以及操作

參見紅黑樹專題

2. 2-3-4樹以及2-3樹的第一個實現(xiàn)——紅黑樹

參見紅黑樹專題
參見查找樹(搜索樹)中的紅黑樹

3. 2-3-4樹的第二實現(xiàn)——1-2-3確定性跳躍表

參見隨機(jī)算法中的跳躍表及其因素

4. 2-3樹的實現(xiàn)——AA樹(基于2-3樹的右傾紅黑樹變種)

4.1 AA樹的定義與實現(xiàn)

一棵紅黑樹是滿足下面紅黑性質(zhì)的二叉搜索樹:

  • 1.每個結(jié)點(diǎn)或是紅色的,或是黑色的
  • 2.根節(jié)點(diǎn)是黑色的
  • 3.每個葉節(jié)點(diǎn)NIL時黑色的(這條性質(zhì)可去掉)
  • 4.如果一個結(jié)點(diǎn)是紅色的在张,則它的兩個子節(jié)點(diǎn)都是黑色的
  • 5.對每個結(jié)點(diǎn),從該節(jié)點(diǎn)到其所有后代葉節(jié)點(diǎn)的簡單路徑上范舀,均包含相同數(shù)目的黑色結(jié)點(diǎn)

AA樹的附加條件:

  • 一個結(jié)點(diǎn)最多可以有一個紅兒子供璧,并且只有右兒子可以是紅兒子(消除了約一半的可能情形)。
    如果一個內(nèi)部結(jié)點(diǎn)只有一個兒子,那么這個兒子一定是右兒子(紅色)弯屈。那么在刪除時,總是可以用一個內(nèi)部結(jié)點(diǎn)的右子樹中的最小結(jié)點(diǎn)代替該內(nèi)部結(jié)點(diǎn)恋拷。(一個兒子結(jié)點(diǎn)是右兒子资厉,兩個兒子結(jié)點(diǎn)用右兒子代替,因此總是用右兒子代替蔬顾。)
  • 結(jié)點(diǎn)的層次(本質(zhì)上是2-3樹每個結(jié)點(diǎn)的高度):
    1)若該結(jié)點(diǎn)是樹葉宴偿,則為1
    2)若該結(jié)點(diǎn)是紅的,則為其父結(jié)點(diǎn)的層次
    3)若該結(jié)點(diǎn)是黑的诀豁,則比父結(jié)點(diǎn)少1


本質(zhì)上是一棵2-3樹

4.2 AA樹的操作

4.2.1 插入




實質(zhì)上是自底向上的2-3樹插入

1)skew和split操作
插入的問題:

  • 產(chǎn)生一個左水平鏈接——通過右旋消除
  • 產(chǎn)生兩個連續(xù)的右水平鏈接——通過左旋消除



2)插入操作(遞歸操作實現(xiàn)的是自底向上的插入)

4.2.2 刪除

刪除總可以歸結(jié)為葉子節(jié)點(diǎn)的刪除窄刘,如果該節(jié)點(diǎn)不是樹葉,則總是可以歸結(jié)為其右子樹上最小的兒子(葉子節(jié)點(diǎn))來代替這個節(jié)點(diǎn)舷胜。



注意:

  • 代碼中娩践,DeletePtr和LastPtr是static變量,因此只有在最底層葉子的時候烹骨,LastPtr才等于T翻伺,其余時候都不等于。因此才有了step2和step3的區(qū)分展氓。
  • 最底層葉子刪除的時候穆趴,指向的是NullNode,該節(jié)點(diǎn)的高度為0.因此會有step3的條件:
    T->Right->level < T->level - 1或者
    T->Left->level < T->level - 1
  • 當(dāng)刪除紅色結(jié)點(diǎn)遇汞,不要挑戰(zhàn)未妹;
    (重要——核心本質(zhì))當(dāng)刪除黑色結(jié)點(diǎn)時,會主動使2-3樹父節(jié)點(diǎn)的高度減一空入,即將2-3樹的2-結(jié)點(diǎn)或者3-結(jié)點(diǎn)與該結(jié)點(diǎn)還剩下的兒子結(jié)點(diǎn)合并络它,然后通過分裂達(dá)到平衡。
  • skew是將左鏈接改為右鏈接歪赢,使其符合AA樹的定義化戳,但是對于2-3樹來說,是在一個結(jié)點(diǎn)內(nèi)的改變
  • split是將4-結(jié)點(diǎn)分裂成3個2-結(jié)點(diǎn),使得2-3樹增加
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末点楼,一起剝皮案震驚了整個濱河市扫尖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌掠廓,老刑警劉巖换怖,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蟀瞧,居然都是意外死亡沉颂,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進(jìn)店門悦污,熙熙樓的掌柜王于貴愁眉苦臉地迎上來铸屉,“玉大人,你說我怎么就攤上這事切端〕固常” “怎么了?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵帆赢,是天一觀的道長小压。 經(jīng)常有香客問我,道長椰于,這世上最難降的妖魔是什么怠益? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮瘾婿,結(jié)果婚禮上蜻牢,老公的妹妹穿的比我還像新娘。我一直安慰自己偏陪,他們只是感情好抢呆,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著笛谦,像睡著了一般抱虐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上饥脑,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天恳邀,我揣著相機(jī)與錄音,去河邊找鬼灶轰。 笑死谣沸,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的笋颤。 我是一名探鬼主播乳附,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了赋除?” 一聲冷哼從身側(cè)響起阱缓,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎贤重,沒想到半個月后茬祷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體清焕,經(jīng)...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡并蝗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了秸妥。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片滚停。...
    茶點(diǎn)故事閱讀 40,021評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖粥惧,靈堂內(nèi)的尸體忽然破棺而出键畴,到底是詐尸還是另有隱情,我是刑警寧澤突雪,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布起惕,位于F島的核電站,受9級特大地震影響咏删,放射性物質(zhì)發(fā)生泄漏惹想。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一督函、第九天 我趴在偏房一處隱蔽的房頂上張望嘀粱。 院中可真熱鬧,春花似錦辰狡、人聲如沸锋叨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽娃磺。三九已至,卻和暖如春叫倍,著一層夾襖步出監(jiān)牢的瞬間偷卧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工段标, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留涯冠,地道東北人。 一個月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓逼庞,卻偏偏與公主長得像蛇更,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評論 2 355

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

  • 一. 算法之變派任,結(jié)構(gòu)為宗 計算機(jī)在很多情況下被應(yīng)用于檢索數(shù)據(jù)砸逊,比如航空和鐵路運(yùn)輸業(yè)的航班信息和列車時刻表的查詢,都...
    Leesper閱讀 6,907評論 13 42
  • 目錄 0.樹0.1 一般樹的定義0.2 二叉樹的定義 1.查找樹ADT 2.查找樹的實現(xiàn)2.1 二叉查找樹2.2 ...
    王偵閱讀 7,211評論 0 3
  • B樹的定義 一棵m階的B樹滿足下列條件: 樹中每個結(jié)點(diǎn)至多有m個孩子掌逛。 除根結(jié)點(diǎn)和葉子結(jié)點(diǎn)外师逸,其它每個結(jié)點(diǎn)至少有m...
    文檔隨手記閱讀 13,222評論 0 25
  • 日料,火鍋豆混,餅夾菜篓像,咖啡,飲料皿伺,冰淇淋员辩。能吃的不能吃的,該喝的不該喝的鸵鸥,都一并過足癮了奠滑。深蹲,散步妒穴,瑜伽球宋税,爬樓梯...
    鄒鄒_依依的媽媽閱讀 227評論 0 0
  • 小雨初晴,空氣中彌漫著淡淡的清香讼油。覓陽心情不錯杰赛,從死寂的宿舍樓出來,此時的他感受到了久違的孤獨(dú)汁讼。 他朝著校...
    心島覓陽閱讀 809評論 0 1