【发布时间】:2012-12-12 16:19:10
【问题描述】:
我正在尝试将基于列表的树实现转换为基于数组的实现,其中父项位于第 i 个索引处,左子项位于第 2 个索引处,右子项位于第 2i+1 个索引处。由于某种原因,转换会导致节点数较多的树的数据丢失。我想知道在实现这一点时我需要检查的所有边界条件。谢谢!
【问题讨论】:
-
list和array建议您已经记住了一种语言。也许您可以用该语言标记您的问题? -
好吧,如果所有节点都有相同数量的子节点,这很简单:root @ 0, L @ 1, R @ 2, LL@3,LR@4,RL@5,RR@ 6 - 所以你可以看到模式 - 左孩子在 2*i + 1,右孩子在 2*i + 2。如果你的方法实施得当,就没有问题。关于边界条件:您最多可以有 N 代,其中 sum(2**0...N)
-
只有“更多的节点”?多大?你没有遭受一些整数溢出,是吗?