Как я могу вычислить уровень узла в идеальном бинарном дереве по его глубине -индекса первого порядка?

У меня есть идеальное бинарное дерево, т. е. каждый узел в дереве является либо листовым узлом, либо имеет двух дочерних узлов, и все листовые узлы находятся на одном уровне. Каждый узел имеет индекс в глубину -первого порядка.

(Например. в дереве с 3 уровнями корневой узел имеет индекс 0, первый потомок имеет индекс 1, первый потомок первого потомка имеет 2, второй потомок первого потомка имеет 3, второй потомок имеет 4, первый потомок второй ребенок имеет 5, второй ребенок второго ребенка имеет индекс 6.

      0
    /   \
  1      4
 / \    / \
2   3  5   6

)

Я знаю размер дерева (количество узлов/максимальный уровень ), но только индекс конкретного узла, и мне нужно вычислить его уровень (, т.е. его расстояние до корневого узла ). Как мне сделать это наиболее эффективно?

5
задан Hauke Rehfeld 23 May 2012 в 14:24
поделиться