Функция:Сложность для функции MaxHeight в бинарном дереве
MAX-HEIGHT(node)
if(node == NIL)
return -1;
else
return max(MAX-HEIGHT(node.leftChild), MAX-HEIGHT(node.rightChild)) + 1;
Предположим, что мы имеем N узлов, и мы называем функцию с MAX-HEIGHT(root).
Я думаю, что сложность этой функции O (N), потому что нам нужно посетить каждый узел. Однако я не уверен, и я не могу доказать это строго. Пожалуйста, дайте мне хорошее объяснение, почему это O (N), если это O (N), и почему бы нет, если это не O (N).
Итак, какая сложность?
спасибо.
Кстати, вы можете настроить дерево, чтобы сохранить информацию внутри, и сделать это O (1) операции и пересчитывать ее на модификации дерева (для сбалансированное дерево, повторное вычисление после модификации будет операцией O (log n)) –