gpt4 book ai didi

java - 二叉树数组迭代

转载 作者:行者123 更新时间:2023-11-30 04:49:25 26 4
gpt4 key购买 nike

我有这个输出,我只需要理解,他们如何使用这些索引来表示二叉树

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

根/索引 0 的左侧 -> 索引 1

根/索引 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。

关于java - 二叉树数组迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10175083/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com