繁体   English   中英

将一棵红黑树转换为2、4树

[英]Convert a Red Black Tree into a 2, 4 tree

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

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

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

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

还有其他建议吗?

这个问题

特别是“带有两个黑色子节点的黑色节点是2节点,带有一个红色子节点的黑色节点是3节点,带有两个红色子节点的黑色节点是4节点”-您可以直接将其用于转换。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM