【发布时间】:2011-01-28 12:39:20
【问题描述】:
我正在搜索这棵简单树的名称,它是二叉搜索树的一个非常简单的概括。
这是描述。树的每个节点都有固定数量的最大键 MI 和最小数量的键,只有 1。键是有序的。每个节点都有指向子节点的 MI+1 外部链接,或多或少类似于 b 树。子节点只包含父节点的两个近键区间内的键,同样,就像 b 树一样。
不同之处在于插入和删除的工作方式。
插入:
我们从根开始。
如果我们正在检查的节点中有空间,因为它没有 MI 键,所以它不是满的,我们在正确的位置添加我们的键。
如果节点已满,我们将签入子节点。如果这个范围没有孩子,我们只用我们的钥匙创建一个。以此类推。
删除:
在删除时,如果我在一个节点中有例如“A C E”,我需要删除“E”,但是在“C”和“E”之间的间隔中有一个孩子,我得到了最大的元素子元素并将其替换为“E”(我可能需要在这里递归,因为删除元素可能需要将另一个元素从子元素移动到父元素)。它比这要复杂一些,但通常需要将元素从子节点移动到拥有已删除键的节点。
我知道这是非常不正式的规定,但我无法找到似乎是二叉树的简单概括的名称。
【问题讨论】:
-
你说一个节点可以有 MI 键,但是你在插入时提到了“孩子”。请说明如何选择孩子作为其关键信息。
-
@margoc:我想我提到过,如果当前节点已满,我们将转到由我们已有的两个键分隔的范围内链接的子节点。因此,如果 MI 为 4,并且我在根节点“A C M Z”中,并且必须添加“E”,则我创建尝试转到 A-C 范围内链接的子节点。如果没有,我创建它。
标签: algorithm data-structures tree