Нерекурсивная высота дерева AVL - PullRequest
0 голосов
/ 10 октября 2018
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?

...