【发布时间】:2023-03-18 12:56:01
【问题描述】:
所以我一直在研究二叉树,我想知道您将使用什么标准系统来将二叉树转换为存储在数组中?所以这将是一个系统,可以确保树的没有 2 个节点映射到数组的相同索引。
【问题讨论】:
-
@AkshayBande 谢谢,但我不确定我如何证明它是正确的,以及为什么它保证树的两个节点都不会映射到数组的相同索引。
标签: arrays data-structures binary-tree
所以我一直在研究二叉树,我想知道您将使用什么标准系统来将二叉树转换为存储在数组中?所以这将是一个系统,可以确保树的没有 2 个节点映射到数组的相同索引。
【问题讨论】:
标签: arrays data-structures binary-tree
在二叉树中每个节点都会有两个孩子,我们可以利用这个属性用数组来表示它。
在数组表示中,如果树不是完全二叉树,会有一些空索引。
如果数组是基于 1 的索引,则每个节点的左子节点位于 pos 2i,右子节点位于位置 2i + 1。
对于基于 0 的索引,左孩子位于 2i+1,右孩子位于 2i+2。
因为左右索引是这样计算的,所以不会重叠。
【讨论】: