给定表示为数组的二叉树,找到它的预先遍历

时间:2014-11-15 16:55:10

标签: algorithm tree traversal

给定一个二进制树表示为数组[_,21,18,19,7,3,8,5,2,1]。这棵树的预订遍历的结果是什么? _表示数组中的空位置。

我对此感到困惑,因为树可以有多个配置,对吧?因此,预订遍历可以是不同的。有一个"以上都没有"答案。

1 个答案:

答案 0 :(得分:0)

在表示为数组a的二叉树中,通常根位于a[1]。给定位置x处的节点,其左侧子节点位于a[x*2],其右侧子节点位于a[(x*2)+1]。因此,根的左侧孩子位于a[2],其右侧孩子位于a[3]

a[2]节点的左侧子节点位于a[4]a[3]节点的右侧子节点位于a[7]

对于位置x的节点,其父级位于a[x/2]

鉴于此,您应该能够从该数组构造您的树。然后您可以轻松确定前序遍历。