B-樹的刪除過程介紹

今天小編就爲大家分享一篇關於B-樹的刪除過程介紹,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

上文https://www.jb51.net/article/154157.htm我們介紹了B-樹的插入過程,本文我們來介紹B-樹的刪除過程。

在B-樹中刪除節點時,可能會發生向兄弟節點借元素,和孩子節點交換元素,甚至節點合併的過程。

我們以下面的樹爲基礎,進行刪除操作。

首先明確一下這個樹的定義。它是一個5階樹。所以,每個節點內元素個數爲2~4個。

我們依次刪除8、16、15、4這4個元素。

首先刪除8,因爲刪除8後,不破壞樹的性質,所以直接刪除即可。得到如下

然後刪除16,這導致該節點只剩下一個13節點,不滿足節點內元素個數爲2~4個的要求了。所以需要調整。這裏可以向孩子借節點,把17提升上來即可,得到下圖。這裏不能和兄弟節點借節點,因爲從3,6節點中把6借走後,剩下的3也不滿要求了。另外,也不能把孩子中的15提升上來,那樣會導致剩下的14不滿足要求。

然後刪除15,刪除15後同樣需要調整。調整的方式是,18上升,17下降到原來15的位置,得到下圖。

然後刪除元素4,刪除4後該節點只剩下5,需要調整。可是它的兄弟節點也都沒有多餘的節點可借,所以需要進行節點合併。節點合併時,方式會有多種,我們選擇其中的一種即可。這裏,我們選擇父節點中的3下沉,和1,2,以及5進行合併,如下圖。

但這次調整,導致6不符合要求了。另外,6非根節點,但只有2個孩子,也不符合要求。需要繼續調整。調整的方式是,將10下沉,和6,以及13,18合併爲根節點,如下圖。

結束。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對神馬文庫的支持。如果你想了解更多相關內容請查看下面相關鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章