Obtenir la hauteur
Leçon 5 sur 16 du cours Arbre AVL - Série Structures de données n°10 de Coddy.
Ajoutez une méthode getHeight à AVLTree qui lit la hauteur stockée d'un nœud. La seule astuce est le cas null : un sous-arbre vide n'existe pas, donc par convention sa hauteur est 0, soit un de moins que la hauteur d'une vraie feuille qui est de 1.
Le fait de diriger chaque recherche de hauteur via cette unique méthode (au lieu de lire node.height directement partout) signifie que la vérification de nullité ne doit être écrite qu'une seule fois.
Défi
DébutantÉcrivez une méthode getHeight(node) sur AVLTree qui retourne 0 si node est null, sinon elle retourne node.height.
Essayez vous-même
#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;
}
Toutes les leçons de Arbre AVL - Série Structures de données n°10
2Projet Arbre AVL
Classe NodeClasse AVLTree