将红黑树转换为2,4树

时间:2012-10-20 22:04:44

标签: java data-structures red-black-tree

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

要使用预先构造的redblack树,所以我必须以某种方式从每个节点收集信息,然后按节点构建新的2,4树节点。

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

这似乎效率很低,但到目前为止,这是我能够提出的所有内容。

还有其他建议吗?

1 个答案:

答案 0 :(得分:1)

请看this question

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