哪种插入2-3树的正确方法?

时间:2013-09-29 13:00:54

标签: data-structures tree 2-3-tree

我的班主任向我提出了一个问题,即在2-3树中进行插入。

enter image description here

我所做的是上层方法。他想要的是下面的方法。你能告诉我哪个是正确的方法,因为我看过网络,我可以看到这两种方法。但我仍然不知道为什么我失去了10分!在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

首先我要说一下2-3棵树有很多不同的版本,所以可能会令人困惑。实际上他们只对商店的价值观有所不同。有些只在每个节点中的叶子和其他商店值中存储值。

我相信你的老师正在使用2-3树的后一种定义。因此,您的树的问题是“根”节点具有与其子节点相同的值,节点永远不会与其子节点共享相同的值。虽然,我不认为你的老师提供的是一棵真正的2-3棵树。当节点包含3个值时,2-3树将分裂。我希望下面是正确的输出:

将4添加到树:

(4)

将7添加到树中:

(4,7)

在树上添加6:

(4,6,7)
*splits*
  (6)
(4) (7)

一旦根节点得到3个值,它就会分成1-2树。

如果您要插入8:

  (6)
(4) (7,8)

如果您要插入9:

   (6)
 (4) (7,8,9)
 *push-up*
   (6,8)
(4) (7) (9)

当非根节点获得3个值时;将中间值推到父级,如果按下该值,则该值使父级具有3个值,则父级将拆分。