青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

那誰的技術(shù)博客

感興趣領(lǐng)域:高性能服務(wù)器編程,存儲,算法,Linux內(nèi)核
隨筆 - 210, 文章 - 0, 評論 - 1183, 引用 - 0
數(shù)據(jù)加載中……

AVL樹刪除節(jié)點算法

在這篇文章里說了,AVL樹平衡的兩個條件是:1)首先,二叉查找樹要求一個樹的根節(jié)點必然大于(或小于)其左子樹中的所有節(jié)點, 同時必然小于(或大于)其右子樹中的所有節(jié)點,也就是說,如果按照中序遍歷二叉查找樹, 它必然是嚴格遞增(或遞減)的.2)AVL樹的平衡條件要求任何一顆子樹,其左右子樹的高度差不超過1.我們要求一顆樹是AVL樹,必須嚴格符合以上的兩 個條件.

可以從這兩個條件著手考慮AVL樹中節(jié)點的刪除.

首先,采用二叉查找樹的刪除節(jié)點算法刪除一個節(jié)點,這個算法在這里有闡述, 此時必然保證了第一個條件.

其次, 從所刪除節(jié)點的父節(jié)點開始向上搜索,看看哪里出現(xiàn)了不平衡的地方, 出現(xiàn)不平衡的情況肯定是因為這條路徑上一個節(jié)點的兄弟節(jié)點高度大于該節(jié)點高度,可以通過旋轉(zhuǎn)將這個兄弟節(jié)點上升一層, 這樣就滿足了第二個條件.

以一個例子進行說明:
      10              10                18
     
/  \            / \               / \
    
5   18          5  18             10  12
   
/    / \   ==>      / \    ==>     /   / \
  
4    12 19          12  19         5   11  19
       
/              /
      
11             11

假設(shè)這里要刪除的節(jié)點是4,在刪除了節(jié)點4之后, 沿著4的父節(jié)點向上查詢, 看看哪里出現(xiàn)了不平衡的情況, 發(fā)現(xiàn)節(jié)點5的高度比它的兄弟節(jié)點低了2, 那么這里要做的就是把這個兄弟節(jié)點,也就是18往上移一層, 采用的就是AVL樹的單旋轉(zhuǎn)方法,最后樹重新達到了AVL樹的兩個條件.

本來想實驗一下這個算法,但是原來這里的實現(xiàn)中, 節(jié)點的struct沒有保存父節(jié)點的指針, 修改起來比較麻煩, 就不做實現(xiàn)了.
不知道這個算法是不是正確的,目前僅是我憑空的推理, 如果有其它地方提到了別的AVL樹刪除節(jié)點算法, 或者有地方證實了這個算法是可行的,請告訴我一聲,謝謝.

補充:
如果這個算法是可行的,那么還有進一步優(yōu)化的可能.
分兩種情況:1)刪除節(jié)點有兩個子節(jié)點, 此時, 替代該節(jié)點的新結(jié)點, 其高度不會發(fā)生變化, 也就不會破壞平衡, 此時不需要進行旋轉(zhuǎn)操作, 也就不需要往上走查詢平衡是否被破壞了.
2)刪除節(jié)點只有一個節(jié)點或者沒有節(jié)點,此時平衡才有可能被破壞, 按照上面的算法進行平衡操作.

posted on 2008-09-17 12:38 那誰 閱讀(8260) 評論(9)  編輯 收藏 引用 所屬分類: 算法與數(shù)據(jù)結(jié)構(gòu)

評論

# re: AVL樹刪除節(jié)點算法[未登錄]  回復(fù)  更多評論   

每一次插入的時候,從插入的節(jié)點開始往上找,每次遇到一個不平衡的父節(jié)點都旋轉(zhuǎn)一次,一直到根節(jié)點為止。

刪除的時候,將中序右繼換過來之后,進行上面的操作。
2008-09-17 12:57 | 陳梓瀚(vczh)

# re: AVL樹刪除節(jié)點算法[未登錄]  回復(fù)  更多評論   

不一定需要父節(jié)點指針,也可以通過保存從根結(jié)點到被刪除節(jié)點的路徑,然后網(wǎng)上調(diào)整.
2008-09-17 18:08 | 季陽

# re: AVL樹刪除節(jié)點算法  回復(fù)  更多評論   

老實說,俺從來沒實現(xiàn)過 AVL Tree。實踐中,凡是能夠使用 AVL Tree 的地方都被 Red-Black Tree 代替了。
2008-09-17 19:40 | Lucifer

# re: AVL樹刪除節(jié)點算法  回復(fù)  更多評論   

呵呵什么時候能探討一下自平衡樹(無論AVL還是RB)的節(jié)點修改操作?有否除了“節(jié)點修改=刪除+重新添加”外的更優(yōu)算法?
2008-09-29 10:57 | E劍仙

# re: AVL樹刪除節(jié)點算法  回復(fù)  更多評論   

將18左旋轉(zhuǎn)后到達不到平衡
插入的時候不用插入后才往上找不平衡的結(jié)點,直接在找插入的時候就能標記好插入后會導(dǎo)致不平衡的點,然后直接判斷如何使用旋轉(zhuǎn)就可以了
2008-10-10 10:12 | dragon

# re: AVL樹刪除節(jié)點算法  回復(fù)  更多評論   

“補充:如果這個算法是可行的,那么還有進一步優(yōu)化的可能.
分兩種情況:1)刪除節(jié)點有兩個子節(jié)點, 此時, 替代該節(jié)點的新結(jié)點, 其高度不會發(fā)生變化, 也就不會破壞平衡,”

這個說法我有點疑問,比如下面這個例子:
1
/ \
2 3
/
4
如果刪除的是結(jié)點1,那么3將被替換到1的位置,而并不像你說的那樣高度沒發(fā)生變化。所以我覺得這種情況仍然要進行旋轉(zhuǎn)操作。
不知道我理解的對不對,請多指教。
2009-01-14 03:14 | GUEST

# re: AVL樹刪除節(jié)點算法  回復(fù)  更多評論   

用遞歸最好
2009-02-25 22:57 | zng

# re: AVL樹刪除節(jié)點算法  回復(fù)  更多評論   

樓上的樓上GUEST 你的疑問是正確的 不管刪除的節(jié)點有幾個子節(jié)點 都是要進行旋轉(zhuǎn)的。
還有就是 你舉的這個例子不能通過單旋解決問題 應(yīng)該要RL旋轉(zhuǎn)才可以 結(jié)果應(yīng)該是這樣的
12
 / \
 10 18
/ \  \
5 11  19
2009-09-24 19:31 | kiven

# re: AVL樹刪除節(jié)點算法  回復(fù)  更多評論   

Insert 一個結(jié)點時, 檢查到不平衡時只要一次(LL, LR, RL, RR)調(diào)整就可以了;

Delete 一個結(jié)點時, 檢查到不平衡時需要把不平衡向上傳遞, 同時可能因為調(diào)整后產(chǎn)生不平衡而向下調(diào)整;

相關(guān)內(nèi)容可以參見我的博客: http://blog.csdn.net/kyee
2010-06-20 00:00 | Kyee
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            99在线观看免费视频精品观看| 欧美一级黄色网| 欧美日韩精品二区| 亚洲美女诱惑| 欧美日韩亚洲高清一区二区| 亚洲影院污污.| 亚洲久久一区二区| 亚洲国产cao| 激情一区二区三区| 亚洲精品日日夜夜| 性欧美大战久久久久久久久| 久久久五月天| 玖玖综合伊人| 欧美日韩美女一区二区| 久久精品视频在线观看| 欧美激情黄色片| 久久久激情视频| 欧美日韩亚洲一区二区三区四区| 久久久亚洲精品一区二区三区| 欧美日韩视频在线一区二区观看视频| 久久久青草青青国产亚洲免观| 欧美视频二区36p| 欧美成人激情视频| 国产日韩欧美一区| 一区二区三区精品视频在线观看| 18成人免费观看视频| 亚洲一区二区在线免费观看| 99精品视频网| 美国成人直播| 久久免费偷拍视频| 国产日韩精品电影| 中文日韩欧美| 亚洲特黄一级片| 欧美久色视频| 亚洲电影网站| 在线播放一区| 久久精品人人| 久久国产视频网站| 国产区亚洲区欧美区| 这里只有精品视频在线| 亚洲人成在线观看网站高清| 最新日韩在线| 香蕉乱码成人久久天堂爱免费| 亚洲靠逼com| 欧美在线视频观看免费网站| 亚洲激情欧美| 欧美国产精品久久| 欧美午夜不卡| 欧美国产视频日韩| 欧美一区不卡| 亚洲欧美日韩中文在线制服| 99综合精品| 国产一在线精品一区在线观看| 亚洲一级在线观看| 亚洲欧美成人一区二区在线电影| 欧美日韩大片| 日韩视频在线观看国产| 国产精品99久久久久久久久久久久| 欧美劲爆第一页| 99国产精品久久久久久久成人热 | 亚洲系列中文字幕| 欧美日韩国产系列| 亚洲视频欧洲视频| 久久国产精品毛片| 伊人久久男人天堂| 免费久久99精品国产自在现线| 亚洲国产乱码最新视频| 99日韩精品| 国外成人网址| 亚洲欧洲午夜| 欧美日韩一区二区精品| 一区二区三区久久久| 新狼窝色av性久久久久久| 国产日韩精品一区| 玖玖玖国产精品| 亚洲精品中文字幕在线| 欧美一区二区三区在| 国内一区二区三区| 欧美国产在线视频| 亚洲综合色激情五月| 亚洲激情视频| 亚洲蜜桃精久久久久久久 | 亚洲欧美日韩视频二区| 99精品99| 亚洲国产成人精品视频| 91久久精品美女| 欧美日韩另类国产亚洲欧美一级| 国产精品久久久一本精品| 亚洲免费观看高清完整版在线观看熊| 中文在线资源观看网站视频免费不卡| 久久久久久久999| 欧美精品一区二区三| 在线综合+亚洲+欧美中文字幕| 欧美在线视频导航| 亚洲人成人一区二区三区| 欧美系列电影免费观看| 久久免费少妇高潮久久精品99| 一区二区成人精品| 欧美大胆成人| 欧美一二三视频| 日韩午夜激情av| 伊人精品在线| 国产精品天天看| 欧美激情视频在线播放| 久久国产精品电影| 亚洲一区二区久久| 亚洲激情成人网| 久久久人成影片一区二区三区 | 在线视频亚洲| 欧美国产精品va在线观看| 久久av二区| 亚洲你懂的在线视频| 亚洲免费av观看| 在线观看欧美日韩| 国产日韩欧美一区| 国产精品私人影院| 欧美三级在线视频| 欧美精品日韩| 欧美高清成人| 欧美成年人视频网站欧美| 久久精品麻豆| 欧美一级黄色网| 亚洲欧美综合精品久久成人| 影音先锋日韩精品| 亚洲欧美日韩精品久久| 狠狠色丁香婷婷综合久久片| 悠悠资源网久久精品| 另类av一区二区| 亚洲综合欧美日韩| 亚洲欧美日韩网| 欧美激情在线狂野欧美精品| 久久久久久午夜| 国产欧美日韩激情| 欧美一区二区播放| 午夜精品福利电影| 欧美精品在线一区| 老色鬼久久亚洲一区二区 | 欧美大片免费久久精品三p| 久久另类ts人妖一区二区| 国产女精品视频网站免费| 在线一区二区三区做爰视频网站| 精品91免费| 老司机aⅴ在线精品导航| 久久视频精品在线| 国产欧美日本一区视频| 亚洲性感激情| 午夜欧美电影在线观看| 欧美日本高清视频| 亚洲精品小视频在线观看| 亚洲黄色在线| 欧美精品999| 亚洲精品国产精品国自产在线| 亚洲国产精品小视频| 麻豆成人91精品二区三区| 久久美女性网| 日韩午夜激情| 国产美女一区二区| 久久久精品日韩| 91久久线看在观草草青青| 一区二区三区精品视频| 国产精品国产三级欧美二区| 亚洲影视在线播放| 噜噜爱69成人精品| 一本色道久久综合精品竹菊 | 美女国内精品自产拍在线播放| 欧美高清在线视频观看不卡| 亚洲国产裸拍裸体视频在线观看乱了中文 | 国产三级欧美三级| 裸体一区二区| 亚洲欧美另类综合偷拍| 免费在线日韩av| 欧美有码视频| 日韩视频三区| 亚洲成人资源| 狠狠爱综合网| 国产精品视频xxx| 欧美www视频| 久久网站热最新地址| 欧美在现视频| 欧美在线观看视频一区二区| 一区二区三区视频在线观看| 欧美成人一区二区三区在线观看| 亚洲少妇在线| 一区二区三区国产精品| 亚洲免费观看| 一二三四社区欧美黄| 亚洲黄色片网站| 在线观看久久av| 很黄很黄激情成人| 国产一区二区三区在线播放免费观看 | 亚洲小说春色综合另类电影| 亚洲高清电影| 亚洲国产乱码最新视频| 亚洲国产精品成人一区二区| 一区二区三区在线视频观看| 国内久久视频| 一区二区三区在线高清| 亚洲国产一区二区三区在线播 | 欧美不卡视频| 欧美成人午夜激情在线|