1
A
回答
3
在Wikipedia頁面上有一個解釋。 B-tree - Deletion
1
如果你還沒有,我強烈建議卡門& al 算法簡介第3版。
它沒有被描述,因爲操作自然來自B-Tree屬性。
由於您對節點中元素數量的下限,如果刪除元素違反了這個不變量,那麼您需要恢復它,這通常涉及與鄰居合併(或竊取其中的一些元素) 。
如果與鄰居合併,則需要移除父節點中的元素,這會觸發相同的算法。你遞歸地申請,直到你到達頂端。
B-Tree沒有重新平衡(至少不是我看到的),所以維護一棵紅黑樹或一棵AVL樹可能不那麼複雜,這可能是爲什麼人們不會被迫寫關於去除。
0
關於哪些b-樹你在說什麼?有鏈接的葉子或不?此外,刪除項目有不同的方式(上下,下下等)。本文可能有幫助:B-trees, Shadowing, and Clones(即使有許多文件系統特定的相關內容)。
0
從CLRS(第2版)的刪除例子可以在這裏找到:http://ysangkok.github.io/js-clrs-btree/btree.html
按「初始化書」,然後按以刪除按鈕。這將涵蓋所有情況。在推動每個按鈕之前嘗試並預測新的樹狀態,並嘗試識別這些情況是如何獨特的。
相關問題
- 1. 如何從DOM中刪除子元素時刪除父元素?
- 2. 從元素中刪除元素而不刪除元素後
- 3. 如何從IG組中刪除元素
- 4. 如何從列表中刪除元素
- 5. 如何從結構中刪除元素
- 6. 如何從Vector中刪除元素?
- 7. 如何從流中刪除元素
- 8. 如何從地圖中刪除元素
- 9. 如何從hsearch中刪除元素
- 10. 如何從myType []中刪除元素?
- 11. 如何從數組中刪除元素?
- 12. 如何從ArrayList中刪除元素?
- 13. 如何從數組中刪除元素?
- 14. 如何從矢量中刪除元素?
- 15. 如何從對象中刪除元素?
- 16. 如何從集合中刪除元素?
- 17. 如何從char []中刪除元素?
- 18. 如何從jlist中刪除元素?
- 19. 從堆中刪除元素
- 20. 從ArrayList中刪除元素
- 21. 從堆中刪除元素
- 22. 從DOM中刪除元素
- 23. 從XML中刪除元素
- 24. 從GridBagLayout中刪除元素
- 25. 從ArrayList中刪除元素
- 26. 從arraylist中刪除元素
- 27. 從元素中刪除jScrollPane
- 28. 刪除元素,並從列表中刪除下列元素
- 29. 如何從數組中刪除相同元素的元素
- 30. 如何根據元素屬性從PriorityQueue中刪除元素?
哈哈,的確如此:我也注意到,大多數書籍似乎都是在B-tree中作爲練習給讀者去除的......這些混蛋。 ;-) – 2011-03-03 20:25:28