我有这个输出,我只需要理解,他们如何使用这些索引来表示二叉树?
How many numbers?: 6
Enter 1st number: 50
Enter 2nd number: 60
Enter 3rd number: 40
Enter 4th number: 15
Enter 5th number: 30
Enter 6th number: 27
BST Array:
[0] 50
[1] 40
[2] 60
[3] 15
[8] 30
[17] 27
它从0,1,2,3开始然后突然变为索引8然后是17(所有其他索引都是空的我猜,但为什么索引8然后是17?)。
答案 0 :(得分:2)
这似乎是一个没有平衡的普通二叉树。 我想这是这样的:
root - > index 0
root / index 0左侧 - >指数1
root / index 0的权利 - >指数2
索引1左侧的- >指数3
索引1的权利 - >指数4
索引2左侧的- >指数5
索引2的权利 - >指数6
索引3的左侧 - >指数7
索引3的权利 - >指数8
索引4左侧 - >指数9
索引4的权利 - >指数10
...
索引i的左边 - > 2 * i + 1
索引i的权利 - > 2 * i + 2
50
/ \
40 60
/
15
\
30
/
27
例如,15位于索引3. 30是它的右子,因此将位于索引2 * 3 + 2 = 8. 27是索引8处元素的左子节点,因此位于索引2 * 8 + 1 = 17。