2011-03-21 57 views
1

我想插入3個值到這個B-樹,60,61和62.我知道如何插入值,當一個節點已滿,有一個空的父母,但什麼如果父母滿了?如何做B樹插入

例如,當我插入60和61時,該節點現在已滿。我無法延伸父母或父母的父母(因爲他們已滿)。那麼我能改變父母的價值嗎?我在插入之前和之後提供了B樹的圖像。

Before insert of 60, 61, 62 試圖插入60,61,62: After 通知我在根改變了66至62,並且加入62到72 <節點。這是做到這一點的正確方法嗎?

回答

3

通過您所做的插入操作,您可以獲得通常稱爲B *樹的內容。在「純粹的」B樹中,當根已滿時插入需要將當前根拆分爲兩個節點,並在其上創建新的根節點(B樹實現不要求根節點遵循相同的規則作爲最小數量後代的其他節點,因此只有兩個將被允許)。

+1

好吧,讓我確定我明白你在說什麼。基本上,我將創建一個新的根節點並將其導向2個新節點 - 其中一個包含[26 | 41 | | ]和另一個包含[66 | 87 | | ]。並從那裏插入62將66 | 87移到右側一個插槽並創建一個新的範圍? – dubyaa 2011-03-21 21:23:57

+1

當前根節點被分成兩部分,一部分包含26和41,另一部分包含66和87.然後,62進入新的根節點(請注意,新插入的值將進入新根目錄是巧合 - 根目錄應該包含前一個根目錄中的值的中間值以及插入的值。 – 2011-03-21 21:31:22

+0

噢好吧,我看它是如何工作的。感謝您的解釋。 – dubyaa 2011-03-21 21:33:56