[英]Is it possible that B+ Tree will delete a number from its leaf node, but not from internal node?
我有一個任務,我必須在 B+ 樹中添加和刪除操作。 我意識到有一些數字存在於非葉節點中,但不存在於葉節點中。 我立即問我的助教“B+ 樹如何包含其任何葉節點中都不存在的元素?”。 他的回答是“我想象不存在於葉節點中但存在於非葉節點中的數字是已刪除的元素。”
可能嗎? 當我們刪除它時,我們不是從 B+ 樹中刪除每個出現的元素嗎?
如果可能的話,你能舉一個發生這種情況的插入和刪除序列的例子嗎?
B+-trees 可以用不同的方式來實現關於非葉子節點上使用的鍵。
這些鍵的目的是支持查找,即唯一的約束是每個非葉節點上的鍵定義的間隔與后代葉節點上找到的實際鍵一致。
將在葉子節點找到的密鑰重用為非葉子節點的密鑰是一種可能的做法並且很方便,因為它避免了任意“組成”非葉子密鑰,但這不是 B+-樹的要求。 特別是在刪除葉子鍵或節點時,更新所有祖先非葉子鍵會造成不必要的開銷,不這樣做效率更高。
另一種可能的做法是使用葉鍵的前綴,在精神上類似於(但不一樣) try 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.