Menu
Coddy logo textTech

Ottieni altezza

Lezione 5 di 16 del corso Albero AVL - Serie sulle strutture dati #10 di Coddy.

Aggiungi un metodo getHeight ad AVLTree che legga l'altezza memorizzata di un nodo. L'unica particolarità è il caso nullo: un sottoalbero vuoto non esiste, quindi per convenzione la sua altezza è 0, una unità in meno rispetto all'altezza 1 di una foglia reale.

Far passare ogni recupero dell'altezza attraverso questo unico metodo (invece di leggere direttamente node.height ovunque) significa che il controllo dei valori nulli va scritto una sola volta.

challenge icon

Sfida

Principiante

Scrivi un metodo getHeight(node) su AVLTree che restituisca 0 se node è null, altrimenti restituisca node.height.

Provalo tu

#include <stdio.h>
#include <string.h>
#include "avltree.h"

int main(void) {
    AVLTree* tree = AVLTree_create();
    char line[256];
    while (fgets(line, sizeof(line), stdin) != NULL) {
        line[strcspn(line, "\r\n")] = '\0';
        if (strcmp(line, "null") == 0) {
            printf("%d\n", AVLTree_getHeight(tree, NULL));
        }
        if (strcmp(line, "null") != 0) {
            int h;
            sscanf(line, "%d", &h);
            Node* n = Node_create(0);
            n->height = h;
            printf("%d\n", AVLTree_getHeight(tree, n));
        }
    }
    return 0;
}

Tutte le lezioni di Albero AVL - Serie sulle strutture dati #10

Esercitati da solo: Compilatore C online