我正在尝试将基于列表的树实现转换为基于数组的实现,其中父级位于第i个索引,左子级位于第2个索引,右侧子级位于第2i +第1个索引。由于某种原因,转换导致具有更多节点的树的数据丢失。我想知道在实现这个时我需要检查的所有边界条件。谢谢!
答案 0 :(得分:2)
假设您的语言使用从零开始的索引,则节点i
的子节点进入2i + 1
和2i + 2
而不是2i
和2i + 1
。后者适用于基于单一的指数。
答案 1 :(得分:0)
你是把头放在0还是1?除非你调整你的公式,否则选择'0'肯定会引起问题。