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

那誰的技術(shù)博客

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

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

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

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

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

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

以一個例子進(jìn)行說明:
      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)方法,最后樹重新達(dá)到了AVL樹的兩個條件.

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

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

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

評論

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

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

刪除的時候,將中序右繼換過來之后,進(jìn)行上面的操作。
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)后到達(dá)不到平衡
插入的時候不用插入后才往上找不平衡的結(jié)點,直接在找插入的時候就能標(biāo)記好插入后會導(dǎo)致不平衡的點,然后直接判斷如何使用旋轉(zhuǎn)就可以了
2008-10-10 10:12 | dragon

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

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

這個說法我有點疑問,比如下面這個例子:
1
/ \
2 3
/
4
如果刪除的是結(jié)點1,那么3將被替換到1的位置,而并不像你說的那樣高度沒發(fā)生變化。所以我覺得這種情況仍然要進(jìn)行旋轉(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é)點 都是要進(jìn)行旋轉(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| 9人人澡人人爽人人精品| 亚洲黄色小视频| 欧美久久精品午夜青青大伊人| 99精品欧美一区二区蜜桃免费| 亚洲每日更新| 国产视频久久久久| 免费在线亚洲欧美| 欧美激情中文不卡| 亚洲欧美日韩精品久久久| 校园春色综合网| 亚洲高清一二三区| 亚洲三级毛片| 国一区二区在线观看| 亚洲国产精品成人综合| 国产精品久久久久久久免费软件| 欧美亚洲一区二区三区| 可以免费看不卡的av网站| a91a精品视频在线观看| 亚洲欧美国产三级| 亚洲激情成人网| 亚洲淫片在线视频| 亚洲福利国产| 亚洲网站在线观看| 91久久精品一区二区三区| 国产精品99久久久久久久女警 | 午夜激情亚洲| 亚洲人成网站精品片在线观看 | 欧美a级大片| 欧美区日韩区| 久久综合给合| 国产精品午夜在线| 亚洲第一福利在线观看| 国产日韩精品久久| 亚洲精品一二| 亚洲国产精品成人久久综合一区| 亚洲欧美日韩国产综合精品二区| 亚洲日本成人| 欧美在线观看一区二区三区| 在线亚洲自拍| 欧美国产在线电影| 免费成人av资源网| 国产视频久久久久| 亚洲性人人天天夜夜摸| 99视频国产精品免费观看| 久久久久久久999| 久久av二区| 国产精品日韩欧美一区二区| 日韩视频二区| 一区二区三区精品| 欧美sm视频| 欧美激情一区二区三区全黄 | 欧美α欧美αv大片| 久久午夜电影网| 国产精品一二| 亚洲视频碰碰| 午夜一级在线看亚洲| 欧美视频手机在线| 一区二区欧美日韩| 亚洲午夜激情网站| 国产精品a久久久久久| 亚洲精品乱码久久久久久黑人 | 欧美一二区视频| 国产精品国码视频| 亚洲午夜未删减在线观看| 这里只有精品电影| 欧美性做爰毛片| 亚洲少妇诱惑| 午夜日韩电影| 国产一区二三区| 久久九九久久九九| 欧美国产日韩一区二区三区| 亚洲国产日韩欧美在线图片 | 一区二区高清在线| 亚洲一区二区三区高清不卡| 欧美性大战久久久久| 亚洲综合二区| 老司机成人在线视频| 亚洲国产欧美一区二区三区久久| 欧美护士18xxxxhd| 一本久道久久综合婷婷鲸鱼| 午夜欧美视频| 在线欧美福利| 国产精品va在线播放我和闺蜜| 亚洲欧美网站| 欧美福利专区| 亚洲一区二区毛片| 国产主播一区二区三区四区| 久久综合精品国产一区二区三区| 亚洲欧洲日韩综合二区| 亚洲一区观看| 伊人久久av导航| 欧美片在线观看| 午夜精品视频在线| 亚洲电影一级黄| 亚洲欧美国产三级| 亚洲福利视频二区| 国产精品国产三级国产a| 欧美一区午夜精品| 亚洲欧洲在线看| 欧美一区二区免费视频| 亚洲人体一区| 国产亚洲高清视频| 欧美激情视频网站| 欧美一区国产一区| 亚洲精品之草原avav久久| 久久久久九九视频| 亚洲视频在线二区| 亚洲黄色毛片| 国产一区av在线| 国产精品地址| 欧美国产先锋| 久久久久se| 亚洲免费视频网站| 99视频+国产日韩欧美| 欧美国产日韩精品| 久久精品国产99精品国产亚洲性色| 亚洲老板91色精品久久| 精品成人在线视频| 国产精品日日摸夜夜添夜夜av| 欧美福利视频网站| 久久亚洲综合| 久久精品国产成人| 午夜精品久久久久久久99黑人| 9l国产精品久久久久麻豆| 欧美激情区在线播放| 久久久最新网址| 欧美一区在线视频| 亚欧成人精品| 亚洲欧美一区二区视频| 亚洲一区二区动漫| 一区二区三区精品在线| 亚洲美女黄色片| 亚洲精品乱码| 亚洲精品影院在线观看| 亚洲经典在线看| 亚洲国产精品激情在线观看| 一区二区三区在线免费播放| 国产综合久久久久久| 国产亚洲人成网站在线观看| 国产午夜亚洲精品理论片色戒| 国产精品久久久久久久久久尿| 欧美性色aⅴ视频一区日韩精品| 欧美日韩成人精品| 欧美日韩一区二区三区四区五区| 欧美激情精品久久久久久变态| 欧美国产精品中文字幕| 欧美电影在线观看完整版| 欧美成人一区二区三区在线观看| 欧美成人免费大片| 欧美精品尤物在线| 欧美视频你懂的| 国产精品婷婷午夜在线观看| 国产欧美一区二区三区久久人妖| 国产欧美日韩视频一区二区三区| 国产视频不卡| 在线观看视频一区二区欧美日韩| 一区二区三区在线视频观看| 黄色亚洲免费| 日韩视频在线永久播放| 中文精品视频一区二区在线观看| 亚洲综合精品自拍| 久久精品在线视频| 欧美国产另类| 一区二区三区 在线观看视频| 在线一区视频| 久久久久久午夜| 欧美伦理在线观看| 国产欧美一区二区视频| 激情丁香综合| 一本久道久久综合婷婷鲸鱼 | 在线观看91精品国产入口| 亚洲国产裸拍裸体视频在线观看乱了| 日韩视频欧美视频| 欧美在线国产| 亚洲国产精彩中文乱码av在线播放| 一本一本久久a久久精品综合麻豆| 亚洲欧美日韩国产成人| 另类尿喷潮videofree | 久久精品免费播放| 欧美精品三区| 国产亚洲精品bv在线观看| 亚洲欧洲一二三| 久久国产色av| 亚洲精品乱码久久久久久黑人| 性色av一区二区三区| 欧美激情国产日韩| 国产日韩欧美综合| 亚洲精品国产精品国产自| 性欧美videos另类喷潮| 亚洲三级网站| 久久网站免费| 国产深夜精品福利| 亚洲午夜一级| 亚洲片在线观看| 久久男人资源视频| 国产乱码精品一区二区三区不卡|