У меня есть идеальное двоичное дерево, т. Е. Каждый узел в дереве является либо листовым узлом, либо имеет двух детей, и все листовые узлы находятся на одном уровне. Каждый узел имеет индекс в порядке глубины.Как я могу рассчитать уровень узла в идеальном двоичном дереве из индекса глубины первого порядка?
(Например, в дереве с 3 уровнями корневой узел имеет индекс 0, первый ребенок имеет 1, первый ребенок первого ребенка имеет 2, второй ребенок первого ребенка имеет 3, второй ребенок имеет 4 , первый ребенок второго ребенка имеет 5, второй ребенок второго ребенка имеет индекс 6.
0
/ \
1 4
/\ /\
2 3 5 6
)
Я знаю, что размер дерева (число узлов/максимальный уровень), но только индекс конкретного узла, и мне нужно рассчитать его уровень (то есть его расстояние до корневого каталога). Как это сделать наиболее эффективно?
Это не двоичное дерево, если узел может иметь> 2 детей. – Justin
Пожалуйста, прочитайте вопрос: «Это глубина, но ** не ** идеальное двоичное дерево» –
Вам также нужно знать общее количество узлов, иначе уровень может быть невозможен для вычисления. – dasblinkenlight