2012-10-20 61 views
1

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

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

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

这看起来效率很低,但到目前为止,这是我所能想到的。

其他建议?

回答

1

看看this question

具体而言,“有两个黑人孩子的黑人节点是2节点,一个红孩子的黑节点是3节点,而有两个红孩子的黑节点是4节点” - 您可以直接使用此节点转换。