Как рассчитывается алгоритм высоты BST? - PullRequest
0 голосов
/ 05 мая 2020
int BianaryTree<T>::height(Node<T>* A){
    root = A;
    if(root==nullptr){
        return 0;
    }
    else {
        int lHeight=height(root->left); //how is int counting here?
        int rHeight=height(root->right);
        return max(lHeight, rHeight)+1;
    }
}

Итак, насколько я понимаю, это стандартный алгоритм высоты бианарного дерева поиска. Мой главный вопрос: как сохранение функции recursd в переменной int «подсчитывает» высоту дерева? Насколько я могу судить, вся эта функция возвращает 0.

1 Ответ

0 голосов
/ 05 мая 2020
• 1000 но с его помощью вы получите ожидаемую высоту.

Представьте себе дерево вроде следующего:

3 2 4 1

с дочерними элементами 1 2 и 4 (не показано ) предполагается равным нулю. height (node_1-> left) и height (node_1-> right) будут равны 0, но height (node_1) будет max (height (node_1-> left), height (node_1-> right)) + 1, то есть 1 Остальное следует оттуда.

...