给定一个二进制树表示为数组[_,21,18,19,7,3,8,5,2,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]
。
鉴于此,您应该能够从该数组构造您的树。然后您可以轻松确定前序遍历。