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

那誰的技術博客

感興趣領域:高性能服務器編程,存儲,算法,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é)點高度,可以通過旋轉將這個兄弟節(jié)點上升一層, 這樣就滿足了第二個條件.

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

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

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

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

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

評論

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相關內(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| 久久久国产亚洲精品| 久久亚洲精品一区二区| 久久在线视频在线| 欧美成人综合网站| 亚洲人成网站影音先锋播放| 日韩写真在线| 午夜精品免费| 久久综合久久88| 欧美日韩国产在线| 国产九九精品视频| 1769国内精品视频在线播放| 欧美在线免费看| 亚洲欧美日本国产专区一区| 欧美一区精品| 女仆av观看一区| 国产精品视频99| 影音先锋久久久| 亚洲素人一区二区| 久久久久久自在自线| 最新成人av网站| 亚洲欧美三级在线| 欧美极品aⅴ影院| 国产视频久久久久| 一区二区av| 免费的成人av| 亚洲视频播放| 久久久人人人| 国产欧美日韩一区二区三区在线观看| 在线观看成人网| 性色av一区二区三区| 欧美国产成人在线| 午夜精品久久久久久| 六月丁香综合| 国产亚洲观看| 亚洲一区免费在线观看| 欧美激情中文不卡| 欧美在线地址| 国产精品久久久久久久久借妻 | 亚洲一区三区电影在线观看| 久久久久亚洲综合| 国产精品爽爽爽| 亚洲免费av观看| 美女黄毛**国产精品啪啪| 亚洲在线网站| 国产精品美女999| 一本到高清视频免费精品| 欧美99在线视频观看| 午夜精品短视频| 国产精品黄色| 一区二区日韩| 亚洲理论在线| 亚洲自拍偷拍网址| 亚洲精选视频在线| 久久亚洲综合色一区二区三区| 国产精品久久久久毛片软件| 日韩亚洲欧美一区二区三区| 欧美**人妖| 久久婷婷国产麻豆91天堂| 国产欧美日韩亚洲精品| 亚洲欧美激情一区二区| 中文国产一区| 国产精品美女久久久久av超清| 亚洲一区二区成人| 一区二区日韩伦理片| 欧美午夜精品久久久久久孕妇| 亚洲午夜视频在线观看| 在线亚洲一区二区| 久久夜色精品亚洲噜噜国产mv| 男同欧美伦乱| 亚洲激情女人| 亚洲狠狠丁香婷婷综合久久久| 久久久免费精品| 黑丝一区二区| 免费在线看成人av| 欧美 日韩 国产在线| 日韩亚洲不卡在线| 一区二区三区日韩精品视频| 国产精品色一区二区三区| 欧美一区在线看| 久久精品视频在线看| 亚洲高清123| 亚洲精品在线观| 国产精品免费电影| 久久夜色精品国产欧美乱极品| 老司机精品导航| 这里只有精品视频在线| 亚洲欧美日韩国产综合精品二区| 国产日韩在线亚洲字幕中文| 欧美福利视频网站| 国产精品成人av性教育| 久久精品亚洲| 欧美国产91| 亚洲一区国产| 玖玖精品视频| 亚洲男女自偷自拍| 美女在线一区二区| 午夜免费久久久久| 另类专区欧美制服同性| 亚洲免费在线视频| 欧美激情精品久久久久久蜜臀| 欧美一级电影久久| 欧美激情精品久久久久久大尺度 | 欧美在线视频免费| 亚洲激情啪啪| 欧美在线一二三| 亚洲婷婷在线| 美女黄毛**国产精品啪啪| 亚洲女女做受ⅹxx高潮| 免费国产一区二区| 久久国产综合精品| 欧美日韩一区二区精品| 久久综合伊人77777麻豆| 国产精品久久久91| 亚洲精选国产| 亚洲精品一区二区三区蜜桃久| 亚洲欧美日本另类| 中文精品一区二区三区| 久久一区精品| 久久一区二区三区av| 国产精品扒开腿爽爽爽视频| 亚洲人成人一区二区三区| 激情综合在线| 欧美在线综合| 久久久久久91香蕉国产| 国产主播在线一区| 午夜精彩视频在线观看不卡| 午夜精品久久久久| 国产精品大全| 亚洲视频电影图片偷拍一区| 羞羞视频在线观看欧美| 一区二区三欧美| 99在线热播精品免费| 欧美韩日高清| 欧美激情一区二区三区高清视频| 国内精品久久久久久久97牛牛| 亚洲小少妇裸体bbw| 亚洲欧美精品| 国产精品女主播| 亚洲一区欧美| 久久激情久久| 黑人中文字幕一区二区三区| 久久久www成人免费毛片麻豆 | 亚洲国内自拍| 国产在线麻豆精品观看| 欧美一区二区三区在线免费观看 | 欧美三级在线视频| 一区二区三区视频免费在线观看 | 欧美高清一区| 亚洲三级观看| 欧美日韩国产专区| 亚洲一区二区三区成人在线视频精品| 亚洲一区二区三区在线观看视频| 欧美三级韩国三级日本三斤| 在线亚洲免费| 久久精品水蜜桃av综合天堂| 狠狠色2019综合网| 免费成人黄色片| 亚洲精品国精品久久99热| 亚洲理论在线观看| 欧美视频免费在线| 性欧美18~19sex高清播放| 久久av一区二区三区漫画| 亚洲精品一级| 亚洲国产精品久久久久| 亚洲精品乱码久久久久久按摩观| 免费一区视频| 99国产精品久久久久久久| 欧美在线视频观看| 在线观看av不卡| 欧美日韩伦理在线免费| 亚洲欧美一区二区原创| 久久婷婷丁香| 一区二区三区|亚洲午夜| 国产欧美一区二区三区在线老狼| 老妇喷水一区二区三区| 亚洲深夜福利在线| 欧美~级网站不卡| 亚洲欧美国产日韩天堂区| 国产视频丨精品|在线观看| 欧美va天堂在线| 亚洲欧美日韩国产一区二区三区 | 亚洲免费激情| 国产精品爽爽ⅴa在线观看| 嫩草成人www欧美| 9人人澡人人爽人人精品| 久久色在线播放| 制服丝袜激情欧洲亚洲| 国模吧视频一区| 国产精品狠色婷| 麻豆freexxxx性91精品| 亚洲欧美成人综合| 一本色道久久加勒比88综合| 欧美国产综合| 久久福利影视| 国产一区二区三区四区老人|