Tree 四叉树分裂运算

Tree 四叉树分裂运算,tree,quadtree,Tree,Quadtree,我很难理解四叉树拆分操作。假设一个节点可以容纳的最大项目数为2;当我们添加第三个元素时,我们创建了四个子节点。问题是,父节点是否保留其2个项目,导致溢出的项目是否插入子节点,还是所有三个节点都插入子节点?所有三个节点都插入子节点。只有叶子节点可以在树中保存一些数据 这可能与kd-tree有所不同,kd-tree中的空间分区更面向数据,而不是固定的空间分区,从而节省内存。另一方面,固定空间分区更易于处理,甚至可以预计算以更快地访问。谢谢!但是,如果三个节点都插入到树中,那么父节点会持有什么呢?父节

我很难理解四叉树拆分操作。假设一个节点可以容纳的最大项目数为2;当我们添加第三个元素时,我们创建了四个子节点。问题是,父节点是否保留其2个项目,导致溢出的项目是否插入子节点,还是所有三个节点都插入子节点?

所有三个节点都插入子节点。只有叶子节点可以在树中保存一些数据


这可能与kd-tree有所不同,kd-tree中的空间分区更面向数据,而不是固定的空间分区,从而节省内存。另一方面,固定空间分区更易于处理,甚至可以预计算以更快地访问。

谢谢!但是,如果三个节点都插入到树中,那么父节点会持有什么呢?父节点(作为任何中间节点)持有指向其4个子节点的指针(或等效指针)。你知道当一个节点不再是子节点时,你可以访问数据。事实上,维基百科关于四叉树的文章中有使用内部节点存储的伪代码。一旦节点溢出,溢出项将插入子节点。如果节点包含两个大圆圈,而我添加了第三个大圆圈,会发生什么情况?节点拆分为4个子节点,现在所有3个圆都可以与子节点相交,因此它们都添加到每个子节点。但每个孩子都必须分开,因为他们只能拿着两个圆圈,这个循环将无限期地继续下去。我的理解有什么问题?