Для четырехугольного дерева алгоритм имеет вид
((4^depth)-1)/3
Например, для глубины 3 вы получите
(64-1)/3 = 21
, а если посчитать три слоя, вы получите
1 + 4 + 16 = 21
В моей реализации я даже разделил его на два массива, в которых размер всех узлов, которые не покидают узлы, равен
((4^(depth-1))-1)/3
, а оставленных узлов -
4^(depth-1)
.во время компиляции с метапрограммированием для pow и аргументом шаблона для глубины.Поэтому я просто размещаю свои узлы в двух массивах.