题
我需要找到一个完美的四叉树的大小。 这意味着我有1个根节点,它分成4个节点,又分成4个节点,等等。
因此高度为1的四叉树的大小为1 高度2=尺寸5(1 + 4) 高度3=尺寸21(1 + 4 + 16) 高度4=尺寸85(1 + 4 + 16 + 64)
等等。
我知道一个完美的二叉树的大小可以找到:size= 2 ^(height + 1)-1 因此,我相信四叉树也存在类似的方程。
那是什么?
解决方案
这是几何级数。所以相关的公式是: 通用标签
其中a
是第一个值,r
是公用比率,n
是项数,^
表示“有能力”。
其他提示
对于四叉树,算法为 通用标签
例如,深度为3时您会得到 通用标签
如果计数三层,您将得到 通用标签
在我的实现中,我甚至将其分为两个数组 离开节点的所有节点的大小为 通用标签
离开节点是 通用标签
我在编译时使用pow的meta编程以及深度的模板参数来进行这些计算。所以我只是将节点分配到两个数组中。
以防万一有人需要代码示例(在swift3中) 通用标签
不隶属于 StackOverflow