因此,对于一个项目,我已经为它实现了一个平衡的 KD-Tree 和 k-最近邻搜索算法,作为标准树的“传统”方式 - 即我有如下节点结构
struct KDNode{
int level; //used for x,y,z axis splitting
Point pos;
KDNode *left, *right; //Child nodes
}
...然后将树作为实际的树数据结构存储在内存中。然而,我最近听说可以将 KD-Tree 作为一个大数组存储在内存中,而无需创建任何节点对象,并且这种构造方法在内存和时间性能方面会更加有效。
但是,我完全不确定这样的构造将如何工作,也无法在网上找到任何详细说明我将如何以这种方式实现 KD-Tree 的内容。
所以我的问题是,如何在不使用节点的情况下将 KD-Tree 实现为一维数组?