【发布时间】:2011-03-17 11:17:30
【问题描述】:
我一直在slady.net 玩非常酷的 btree 小程序。我无法理解特定行为。看看这个起始状态:
alt text http://www.freeimagehosting.net/uploads/db2931c7da.jpg
通过插入以下序列达到此特定状态:10、15、30、16、70、1、9、27、45、50、55。
我的问题是当我在序列中插入下一个值 65 时 [45, ] 节点会发生什么。
alt text http://www.freeimagehosting.net/uploads/3b70c1d302.jpg
[55,70] 节点将被 65 分割,作为中间值,65 将向上移动,然后也分割 [30,50] 节点。我的问题是:为什么 [45, ] 节点最终成为 [30, ] 节点的子节点?它的 parent 最初有 3 个孩子,最左边和最右边成为新的单独节点。 45 介于这些值之间,似乎它也可以在 [65, ] 节点下结束......为什么?
【问题讨论】:
-
由于使用的特定算法对我们来说是不透明的,它只提供黑盒测试。将 [69, 66] 添加到你的最终树对我来说是违反直觉的。
-
问题的标题是“btree 插入”......我不知道我怎么能更具体。
标签: algorithm insertion b-tree