首页 > 解决方案 > 树状连接的算法?

问题描述

问题是我需要创建一个代表一定数量对象的一维数组。这些对象的组织如图所示。 关联

而且我必须能够分辨出与哪个连接。对象的数量是唯一给出的。

有没有某种算法可以做到这一点?

标签: javaarraysalgorithm

解决方案


这种组织通常用于在数组中实现堆:https ://www.geeksforgeeks.org/array-representation-of-binary-heap/

您只需按级别顺序将对象放入数组中(首先是顶部 1,然后是级别 2 中的 2,然后是级别 3 中的 4,等等)。

假设基于 0 的索引,则array[i]中的对象具有子array[2*i+1]array[2*i+2]

如果您的数组从[1]开始,则array[i]中的对象有子数组[2*i]数组[2*i+1]


推荐阅读