国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

紅黑樹(AVL樹的優(yōu)化)上

這篇具有很好參考價值的文章主要介紹了紅黑樹(AVL樹的優(yōu)化)上。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

紅黑樹略勝AVL樹

AVL樹是一顆高度平衡搜索二叉樹: 要求左右高度差不超過1(嚴格平衡)

有的大佬認為AVL樹太過嚴格,對平衡的要求越嚴格,會帶來更多的旋轉(旋轉也還是會有一定的消耗?。。?/p>

紅黑樹的出發(fā)點:最長路徑不超過最短路徑的2倍(近似平衡)

相對而言,插入同樣的數(shù)據(jù),AVL樹旋轉更多,紅黑樹旋轉更少(這是優(yōu)勢)

紅黑樹的劣勢:

紅黑樹(AVL樹的優(yōu)化)上,數(shù)據(jù)結構高階,數(shù)據(jù)結構

?我們在進行查找的時候,我們AVL樹最多查找20次左右

紅黑樹最多查找40次左右

雖然紅黑樹查找的次數(shù)比AVL樹多,但是紅黑樹在插入過程中的旋轉更少,更占優(yōu)勢

紅黑樹的概念

紅黑樹,是一種搜索二叉樹,單在每個節(jié)點上增加一個存儲位表示節(jié)點的顏色,可以是Red或Block,通過對任何一條從根到路徑上各個節(jié)點著色方式的限制,紅黑樹確保沒有一條路徑會比其它路徑長出兩倍,因而是接近平衡的

紅黑樹(AVL樹的優(yōu)化)上,數(shù)據(jù)結構高階,數(shù)據(jù)結構

1.每一個節(jié)點不是紅色就是黑色

2.根節(jié)點是黑色的

3.如果一個節(jié)點是紅的,那么它的兩個孩子節(jié)點是黑色的

解讀? :?? 樹中沒有連續(xù)的紅色節(jié)點

4.對于每個節(jié)點,從該節(jié)點到其所有后代葉節(jié)點的簡單路徑上,均包含有相同的數(shù)目的黑色節(jié)點

解讀? : 每條路徑的黑色節(jié)點數(shù)量相等

紅黑樹(AVL樹的優(yōu)化)上,數(shù)據(jù)結構高階,數(shù)據(jù)結構

?5.每個葉子節(jié)點都是黑色的(此處的葉子節(jié)點指的是空節(jié)點NIL節(jié)點)

為什么這里指的是空節(jié)點呢??

紅黑樹(AVL樹的優(yōu)化)上,數(shù)據(jù)結構高階,數(shù)據(jù)結構

?為什么滿足上面性質,紅黑樹就能保證 : 其最長路徑中節(jié)點個數(shù)不會超過最短路徑節(jié)點個數(shù)的兩倍??

因為每條路徑上都有相同數(shù)量的黑節(jié)點? 所以:

這顆樹最短路徑? :? 一定是全黑

?????????? 最長路徑? :? 一定是一黑一紅

這樣最短路徑一定不超過最長路徑的二倍

紅黑實現(xiàn)代碼

我們在新插入的節(jié)點是應該選擇紅色還是黑色呢??

紅黑樹(AVL樹的優(yōu)化)上,數(shù)據(jù)結構高階,數(shù)據(jù)結構

?我們來看看插入紅色,會是什么樣??

紅黑樹(AVL樹的優(yōu)化)上,數(shù)據(jù)結構高階,數(shù)據(jù)結構

發(fā)現(xiàn)如果插入黑色一定挨打,如果插入紅色有可能不用挨打,拍拍屁股就走人了,就算是挨打,也不用太大費周章的解決

紅黑樹(AVL樹的優(yōu)化)上,數(shù)據(jù)結構高階,數(shù)據(jù)結構

紅黑樹(AVL樹的優(yōu)化)上,數(shù)據(jù)結構高階,數(shù)據(jù)結構

?叔叔也是紅的,那我把叔叔也變黑,祖父變紅

紅黑樹(AVL樹的優(yōu)化)上,數(shù)據(jù)結構高階,數(shù)據(jù)結構

?如果這時候? 25就是這顆樹的根,就結束了,沒必要在往后走了(再像辦法把25變?yōu)楹诘模?/p>

紅黑樹(AVL樹的優(yōu)化)上,數(shù)據(jù)結構高階,數(shù)據(jù)結構

紅黑樹(AVL樹的優(yōu)化)上,數(shù)據(jù)結構高階,數(shù)據(jù)結構

?紅黑樹(AVL樹的優(yōu)化)上,數(shù)據(jù)結構高階,數(shù)據(jù)結構

?這時候我們發(fā)現(xiàn)還有一個小問題,grandfather變成紅了,但是grandfather這時候是根,根不能是紅的,我們還得把grandfather變成黑,即可

我們上面的過程,紅黑樹的插入問題可能光變色就夠了,插入節(jié)點之后最短并沒有超過最長的2倍,也不需要旋轉,降長度

------------------------------------------------------------------------------------------------------------------

一下這種情況就需要旋轉加變色了

紅黑樹(AVL樹的優(yōu)化)上,數(shù)據(jù)結構高階,數(shù)據(jù)結構

?------------------------------------------------------------------------------------------------------------------------------

情況一 : cur為紅,p為紅,g為黑,u存在且為紅

紅黑樹(AVL樹的優(yōu)化)上,數(shù)據(jù)結構高階,數(shù)據(jù)結構

?具像圖一:

紅黑樹(AVL樹的優(yōu)化)上,數(shù)據(jù)結構高階,數(shù)據(jù)結構

?具像圖二:
紅黑樹(AVL樹的優(yōu)化)上,數(shù)據(jù)結構高階,數(shù)據(jù)結構

?總共有? 4*4*4*4(在ab的任意位置插入,有4種情況) =256 種組合

這些情況是無窮無盡的?。?!

有可能 a b下面還有一個黑節(jié)點,那么cde的子樹就是有兩個黑節(jié)點的子樹了,情況是無窮無盡的了

紅黑樹(AVL樹的優(yōu)化)上,數(shù)據(jù)結構高階,數(shù)據(jù)結構

---------------------------------------------------------------------------------------------------------------------------

情況二? :?? 還有的情況是光變色解決不了的!?。?!

cur為紅,p為紅 , g為黑,u不存在? /?? u存在且為黑

紅黑樹(AVL樹的優(yōu)化)上,數(shù)據(jù)結構高階,數(shù)據(jù)結構

紅黑樹(AVL樹的優(yōu)化)上,數(shù)據(jù)結構高階,數(shù)據(jù)結構

?紅黑樹(AVL樹的優(yōu)化)上,數(shù)據(jù)結構高階,數(shù)據(jù)結構

?紅黑樹(AVL樹的優(yōu)化)上,數(shù)據(jù)結構高階,數(shù)據(jù)結構

情況三:就是情況二再變形

雙旋 + 變色

紅黑樹(AVL樹的優(yōu)化)上,數(shù)據(jù)結構高階,數(shù)據(jù)結構

?情況一變過來之后,我們看叔叔的情況?。。?/p>

紅黑樹(AVL樹的優(yōu)化)上,數(shù)據(jù)結構高階,數(shù)據(jù)結構

?紅黑樹(AVL樹的優(yōu)化)上,數(shù)據(jù)結構高階,數(shù)據(jù)結構文章來源地址http://www.zghlxwxcb.cn/news/detail-684618.html

到了這里,關于紅黑樹(AVL樹的優(yōu)化)上的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Python - 深夜數(shù)據(jù)結構與算法之 AVL 樹 & 紅黑樹

    Python - 深夜數(shù)據(jù)結構與算法之 AVL 樹 & 紅黑樹

    目錄 一.引言 二.高級樹的簡介 1.樹 2.二叉樹 3.二叉搜索樹 4.平衡二叉樹 三.AVL 樹 ◆ 插入節(jié)點 ◆ 左旋 ◆ 右旋 ◆ 左右旋 ◆ 右左旋 ◆ 一般形式 ◆ 實際操作 ◆ 總結 四.紅黑樹 ◆ 概念 ◆ 示例 ◆ 對比 五.總結 前面我們介紹了二叉樹、二叉搜索樹、多叉樹等基礎的樹形結構,

    2024年01月19日
    瀏覽(24)
  • 【數(shù)據(jù)結構】二叉樹---紅黑樹的實現(xiàn)

    【數(shù)據(jù)結構】二叉樹---紅黑樹的實現(xiàn)

    目錄 一.? 紅黑樹的概念及性質 二.? 紅黑樹結點結構的定義 三.? 紅黑樹的插入操作 ? ? ?1. 情況一 ? ? ?2. 情況二 ? ? ? ?3. 情況三 四.? 紅黑樹的驗證 五.??紅黑樹與AVL樹的比較 紅黑樹是一種自平衡的二叉搜索樹,它在每個節(jié)點上增加了一個存儲位來表示節(jié)點的顏色,

    2024年03月21日
    瀏覽(19)
  • Java 數(shù)據(jù)結構篇-實現(xiàn)紅黑樹的核心方法

    Java 數(shù)據(jù)結構篇-實現(xiàn)紅黑樹的核心方法

    ? ??博客主頁:?【 小扳_-CSDN博客】 ?感謝大家點贊??收藏?評論? ?? ? 文章目錄 ? ? ? ? 1.0 紅黑樹的說明 ? ? ? ? 2.0 紅黑樹的特性 ? ? ? ? 3.0 紅黑樹的成員變量及其構造方法 ? ? ? ? 4.0 實現(xiàn)紅黑樹的核心方法 ? ? ? ? 4.1 紅黑樹內(nèi)部類的核心方法 ? ? ? ? (1)判

    2024年01月24日
    瀏覽(23)
  • 【數(shù)據(jù)結構】紅黑樹的刪除(抽絲剝繭,帶你理清每一種情況)

    【數(shù)據(jù)結構】紅黑樹的刪除(抽絲剝繭,帶你理清每一種情況)

    ?紅黑樹的刪除,較AVL樹的刪除比較抽象,同時也跟紅黑樹的插入的區(qū)別較大,但大體上的思路還是基于普通二叉搜索樹的基礎上進行討論的。 淺淺的鋪墊一下: 需要清楚普通二叉樹的刪除,可見AVL樹的刪除文章開頭。 四種旋轉的操作(只需操作)得熟記于心,可見AVL樹的插

    2024年04月27日
    瀏覽(29)
  • 數(shù)據(jù)結構——常見二叉樹的分類(完全二叉樹、滿二叉樹、平衡二叉樹、二叉搜索樹、紅黑樹)

    數(shù)據(jù)結構——常見二叉樹的分類(完全二叉樹、滿二叉樹、平衡二叉樹、二叉搜索樹、紅黑樹)

    專業(yè)術語 中文 描述 Root 根節(jié)點 一棵樹的頂點 Child 孩子結點 一個結點含有的子樹的根節(jié)點稱為該結點的子節(jié)點 Leaf 葉子結點 沒有孩子的節(jié)點 Degree 度 一個節(jié)點包含子樹的數(shù)量 Edge 邊 一個節(jié)點與另外一個節(jié)點的連接 Depth 深度 根節(jié)點到這個節(jié)點經(jīng)過邊的數(shù)量 Height 節(jié)點高度 從

    2024年02月03日
    瀏覽(29)
  • 【C++】AVL樹和紅黑樹的插入

    【C++】AVL樹和紅黑樹的插入

    時間過的好快,我也修煉到紅黑樹了 人世這一遭,何其短暫而漫長啊…… 1. 雖然二叉搜索樹的搜索效率很高,當搜索樹接近滿二叉樹時,搜索效率可以達到logN,但是如果數(shù)據(jù)是有序的,則二叉搜索樹會退化為單支樹,搜索效率和普通的序列式容器相同了就,所以在搜索樹的

    2023年04月08日
    瀏覽(25)
  • 紅黑樹數(shù)據(jù)結構

    紅黑樹數(shù)據(jù)結構

    現(xiàn)在JAVASE中HashMap中底層源碼是由數(shù)組+鏈表+紅黑樹進行設計的,然后很多地方也是用到紅黑樹,這里單獨對紅黑樹數(shù)據(jù)結構進行簡單的介紹。 目錄 紅黑樹概念 紅黑樹的性質 自平衡規(guī)則 代碼 ? 紅黑樹,是一種二叉搜索樹,但在每個結點上增加一個存儲位表示結點的顏色,可

    2024年02月01日
    瀏覽(20)
  • 數(shù)據(jù)結構 | 紅黑樹

    數(shù)據(jù)結構 | 紅黑樹

    節(jié)點的左邊比節(jié)點的值小,右邊比節(jié)點的值大。 節(jié)點要么是 紅色 ,要么是 黑色 根節(jié)點 是黑色 葉子節(jié)點都是黑色的空節(jié)點 紅黑樹中紅色節(jié)點的子節(jié)點都是黑色 從任一節(jié)點到葉子節(jié)點的所有路徑都包含相同數(shù)目的黑色節(jié)點 在添加或者刪除節(jié)點的時候,如果不滿足這些性質會

    2024年01月21日
    瀏覽(29)
  • [數(shù)據(jù)結構]-紅黑樹

    [數(shù)據(jù)結構]-紅黑樹

    前言 作者 : 小蝸牛向前沖 名言: 我可以接受失敗,但我不能接受放棄 ??如果覺的博主的文章還不錯的話,還請 點贊,收藏,關注??支持博主。如果發(fā)現(xiàn)有問題的地方歡迎?大家在評論區(qū)指正 目錄 一、紅黑樹的基本知識 ?1、紅黑樹的概念 2、性質? 二、紅黑樹的模擬實

    2024年02月04日
    瀏覽(23)
  • 數(shù)據(jù)結構——紅黑樹

    數(shù)據(jù)結構——紅黑樹

    目錄 概念 性質 結點的定義? 插入 調(diào)整 當p是g的左孩子時 當p為g的右孩子時 插入完整代碼 紅黑樹的檢測 紅黑樹完整代碼(包括測試數(shù)據(jù)) ? 紅黑樹,是一種二叉搜索樹,但在每個結點上增加一個存儲位表示結點的顏色,可以是RED或BLACK。 通過對任何一條從根到葉子的路徑

    2023年04月09日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包