int get_height(struct avl_node *node)
{
int height=0;
if( node != NULL )
height = 1 + max(get_height(node->left_child),
get_height(node->right_child));
return height;
}
Я запускаю программу дерева AVL на C. Но во время компиляции генерировать 50 тысяч случайных данных, которые отличались друг от друга в диапазоне от 1 до 50 тысяч, слишком долго.Я обнаружил, что рекурсивная форма функции get_height
является проблемой слишком долгого времени компиляции.Я устал делать нерекурсивную форму функции get_height
, чтобы сократить время компиляции с помощью обхода уровня.Но позже я понимаю, что использование обхода уровня нецелесообразно.есть ли правильная нерекурсивная форма get_height
?