假设你有一个 2-3 树,包含节点和几个级别。你怎么能找到给你结果树的几个可能的插入顺序/序列之一?
不需要代码,只是一个纸上的任务。我敢肯定(祈祷)这不是简单的反复试验。
类似的问题在这里被问到,但没有回复
假设你有一个 2-3 树,包含节点和几个级别。你怎么能找到给你结果树的几个可能的插入顺序/序列之一?
不需要代码,只是一个纸上的任务。我敢肯定(祈祷)这不是简单的反复试验。
类似的问题在这里被问到,但没有回复
我是这个主题的新手,但我会尝试一下。
我们所要做的就是想办法倒退一步。也就是说,选择一个可能是最后添加的值,并推断前一棵树必须是什么。
一个新值被添加到一个叶子;要么叶子有一个值(现在有两个),要么它有两个,新值导致分裂。分裂将向上传播到树,直到它通过创建一个 3 节点或一个新的根 2 节点而停止。
因此,这是一种选择可能是最后添加的值的方法。如果树中有任何二值节点,则选择最低的节点之一;该节点中的任何一个值都可能是最后一个值。如果树中没有二值节点,那么树中的任何值都可能 根节点中的值一定是最后一个。
(这并不详尽,还有其他可能性,但我们正在努力寻找候选人,而不是所有候选人。)
一旦你选择了一个值,通过分解为叶子来删除它是非常简单的。
这是否足够,或者我应该更详细地解释?