Obter Altura
Lição 5 de 16 do curso Árvore AVL - Série de Estruturas de Dados #10 da Coddy.
Adicione um método getHeight à AVLTree que lê a altura armazenada de um nó. O único truque é o caso nulo: uma subárvore vazia não existe, então, por convenção, sua altura é 0, uma a menos que a altura de uma folha real, que é 1.
Encaminhar cada busca de altura através deste único método (em vez de ler node.height diretamente em todos os lugares) significa que a verificação de nulo só precisa ser escrita uma vez.
Desafio
InicianteEscreva um método getHeight(node) em AVLTree que retorna 0 se node for null, caso contrário, retorna node.height.
Experimente você mesmo
#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 as lições de Árvore AVL - Série de Estruturas de Dados #10
2Projeto de Árvore AVL
Classe NóClasse AVLTree