Obtener altura
Lección 5 de 16 del curso Árbol AVL - Serie de Estructuras de Datos #10 de Coddy.
Añade un método getHeight a AVLTree que lea la altura almacenada de un nodo. El único truco es el caso nulo: un subárbol vacío no existe, por lo que por convención su altura es 0, uno menos que la altura de una hoja real de 1.
Dirigir cada búsqueda de altura a través de este único método (en lugar de leer node.height directamente en todas partes) significa que la comprobación de nulos solo tiene que escribirse una vez.
Desafío
PrincipianteEscribe un método getHeight(node) en AVLTree que devuelva 0 si node es null, de lo contrario devuelve node.height.
Pruébalo tú mismo
#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;
}
Todas las lecciones de Árbol AVL - Serie de Estructuras de Datos #10
2Proyecto de Árbol AVL
Clase NodoClase AVLTree