我正在用 C++ 实现一个八叉树,它稍后应该包含一个用于渲染的网格。但目前我正在努力构建八叉树。更准确地说,导致问题的是 addNode() 函数。我想到了一个类似于二叉树的递归实现: Binary Tree implementation C++
但是,在八叉树中,每个节点都有 8 个儿子,而不仅仅是 2 个。此外,因此我不能像在二叉树中那样使用简单的开关(左/右)来决定在哪里添加节点。我需要检查 8 个儿子之一是否为空(指针为 NULL),如果没有指针为空,我需要使用其中一个儿子作为参数调用 add 函数。然而,这将导致一个八叉树,其中第一个儿子总是包含所有后续的子八叉树。这个 add 函数通常是如何实现的并避免了这个问题?