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.
Sfida
PrincipianteScrivi 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
2Progetto sugli alberi AVL
Classe NodoClasse AVLTreeEsercitati da solo: Compilatore C online