我正在尋找這個簡單的樹的名字,這是一個非常簡單的二叉搜索樹的泛化。這棵樹的名字是什麼?
這是描述。樹的每個節點都有固定數量的最大密鑰MI和最小數量的密鑰數量爲1的密鑰。每個節點都有MI + 1個子節點的外部鏈接,或多或少像一棵B樹。子節點只包含父節點的兩個臨近鍵的間隔中的鍵,同樣也像B樹一樣。
不同之處在於插入和刪除是如何工作的。
插入:
我們從根開始。
如果我們正在檢查節點中有空間,因爲它沒有MI密鑰,所以它沒有滿,我們將我們的密鑰添加到正確的位置。
如果節點已滿,我們檢查孩子。如果這個範圍內沒有孩子,我們只用我們的鑰匙創建一個。等等。
刪除:
上刪除,如果我有一個節點實例「ACE」,我需要刪除「E」,但在「C」和「E」之間的間隔有一個孩子,我得到了孩子的最大元素,並將其替換爲「E」(我可能需要在這裏遞減,因爲移除元素可能需要將另一個元素從孩子移到父母)。它比這更復雜一點,但通常需要將子元素從子項移動到擁有已刪除鍵的節點。
我知道這是非常非正式的指定,但我無法找到似乎是一個二叉樹的普遍化的名稱。
你說一個節點可以有MI密鑰,但是你在插入時提到了「孩子」。請說明如何選擇兒童作爲其重要信息。 – marcog 2011-01-28 14:30:14
@margoc:我想我已經提到過,如果當前節點已滿,我們會轉到在由我們已有的兩個鍵定界的範圍內鏈接的子項。因此,如果MI是4,並且我已經在根節點「A C M Z」中,並且我要添加「E」,我創建了嘗試去A-C範圍內鏈接的子節點。如果沒有,我創建它。 – antirez 2011-01-28 16:00:35