1

因此,您可能已经猜到了,我正在尝试将红黑树转换为 Java 中的 2,4 树。我并没有太多停留在它是如何工作的,而是更多地找出遍历树的最佳方法。

将使用预先构建的红黑树,因此我必须以某种方式从每个节点收集信息,然后逐个节点构建新的 2,4 树。

我正在考虑使用基于数组的实现作为“过渡”阶段。因此,例如在 array[i],它的左孩子是 array[i(*2)],它的右孩子是 array[(i*2)+1)]。然后遍历数组并通过获取其信息(即它是否具有红色或黑色子/父)从那里构建 2,4 并形成每个 2,4 节点。

这似乎效率很低,但到目前为止,这就是我所能想到的。

还有其他建议吗?

4

1 回答 1

1

看看这个问题

具体来说“带有两个黑色孩子的黑色节点是 2 节点,带有一个红色孩子的黑色节点是 3 节点,带有两个红色孩子的黑色节点是 4 节点” - 您可以直接使用它进行转换。

于 2012-11-23T19:21:28.600 回答