Tree 二叉树的数组布局

Tree 二叉树的数组布局,tree,binary-tree,Tree,Binary Tree,我在学习二叉树。我在练习一篇题纸时遇到了一个问题,我不确定我的答案是否正确,所以我想问你们对这个问题的看法。(不是任务!) 假设有一棵二叉树:- 1 / \ 2 3 / 4 \ 5 在给定数组[1][?][?][?][?][?][?][?][?][?][?][?][?] “4”会被放置吗 我想我的答案是在第三指数(如果我们认为数组是0),但我认为这可能不是答案。这比给定在树的某些部分有很多空值更复杂 因此,数组应

我在学习二叉树。我在练习一篇题纸时遇到了一个问题,我不确定我的答案是否正确,所以我想问你们对这个问题的看法。(不是任务!)

假设有一棵二叉树:-

     1
    / \
   2   3
      / 
     4  
      \
       5
在给定数组[1][?][?][?][?][?][?][?][?][?][?][?][?]

“4”会被放置吗

我想我的答案是在第三指数(如果我们认为数组是0),但我认为这可能不是答案。这比给定在树的某些部分有很多空值更复杂

因此,数组应该是这样的:-[1][2][3][NULL][NULL][4][NULL][NULL][5] “4”在第5个索引中的位置?

(注意:这在很大程度上取决于二叉树的实现方式。)

对于绘制的树,假设树隐式地存在于数组中,即,将节点的子节点放置在
i
位置,在
2*i+1
2*i+2
位置分别放置在数组中:是的,那么4将位于索引5处(从0开始计数)

但是,假设以上所有情况,并查看图片,您在数组中的错误位置有5个。5应位于索引12处。 您应该(使用您的符号):

[1][2][3][NULL][NULL][4][NULL][NULL][NULL][NULL][NULL][NULL][5]

要查看这一点,请查看包含空条目的树

            1
        /       \
     2            3
   /   \       /     \
  N     N     4       N
 / \   / \   / \ 
N  N  N   N N   5

非常感谢。我不知道答案应该是什么,但你的解释确实帮我消除了所有的疑虑!我会小心,用给定的数学方程重新计算得更好。