Clase Nodo
Lección 3 de 16 del curso Árbol AVL - Serie de Estructuras de Datos #10 de Coddy.
Cada nodo en el árbol almacena cuatro cosas: su value, punteros a un hijo left y right, y su propia height. Un nodo completamente nuevo es una hoja, por lo que su altura comienza en 1 y aún no tiene hijos.
Rastrear la altura directamente en el nodo (en lugar de volver a calcularla recorriendo el árbol cada vez) es lo que permite que cada operación posterior verifique el equilibrio en tiempo constante.
Desafío
PrincipianteEscribe una clase Node con un constructor que reciba un value y lo almacene, establezca left y right a null, y establezca height a 1.
Pruébalo tú mismo
#include <stdio.h>
#include "node.h"
int main(void) {
char line[256];
while (fgets(line, sizeof(line), stdin) != NULL) {
int v;
if (sscanf(line, "%d", &v) != 1) {
continue;
}
Node* n = Node_create(v);
if (n->left == NULL && n->right == NULL) {
printf("%d %d null null\n", n->value, n->height);
} else if (n->left == NULL) {
printf("%d %d null %d\n", n->value, n->height, n->right->value);
} else if (n->right == NULL) {
printf("%d %d %d null\n", n->value, n->height, n->left->value);
} else {
printf("%d %d %d %d\n", n->value, n->height, n->left->value, n->right->value);
}
}
return 0;
}
Todas las lecciones de Árbol AVL - Serie de Estructuras de Datos #10
2Proyecto de Árbol AVL
Clase NodoClase AVLTree