Определение размера идеального четырехугольного дерева
-
27-10-2019 - |
Вопрос
Мне нужно найти размер идеального четырехугольного дерева. Это означает, что у меня есть 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 Поэтому я считаю, что аналогичное уравнение существует для дерева квадратов.
Так что это?
Решение
Это геометрическая серия .Итак, соответствующая формула:
Genracodicetagpre где a
- это первое значение, r
- это общее соотношение, n
- количество терминов, а ^
обозначает "в степени".
Другие советы
Для дерева квадратов алгоритм
GenracodicetagpreНапример, с глубиной 3 вы получите
Genracodicetagpreа если сосчитать три слоя, то получится
GenracodicetagpreВ своей реализации я даже разделил его на два массива где размер всех узлов, которые не покидают узлы, составляет
Genracodicetagpreи оставить узлы
GenracodicetagpreЯ выполняю эти вычисления во время компиляции с помощью метапрограммирования для pow и аргумента шаблона для глубины.Поэтому я просто размещаю свои узлы в двух массивах.
На всякий случай кому-нибудь понадобится образец кода (в swift3)
Genracodicetagpre