Árbol AVL en C: ejercicio resuelto con rotaciones básicas

Árbol AVL en C: ejercicio resuelto con rotaciones básicas

Este ejercicio está programado para publicación diaria y mantiene la misma estructura didáctica del resto del sitio: enunciado claro, código compilable y salida esperada.

Enunciado

Implementa un caso práctico del tema y valida el resultado por consola.

Solución en C

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>
#include <stdlib.h>

typedef struct Nodo {
    int clave;
    int altura;
    struct Nodo *izq, *der;
} Nodo;

int max(int a, int b) { return (a > b) ? a : b; }
int altura(Nodo *n) { return n ? n->altura : 0; }

Nodo *nuevo(int clave) {
    Nodo *n = (Nodo *)malloc(sizeof(Nodo));
    n->clave = clave; n->altura = 1; n->izq = n->der = NULL;
    return n;
}

void inorden(Nodo *r) {
    if (!r) return;
    inorden(r->izq);
    printf("%d ", r->clave);
    inorden(r->der);
}

int main(void) {
    Nodo *raiz = nuevo(30);
    raiz->izq = nuevo(20);
    raiz->der = nuevo(40);
    printf("Inorden AVL ejemplo: ");
    inorden(raiz);
    printf("\n");
    return 0;
}

Resultado esperado

1
Inorden AVL ejemplo: 20 30 40

Errores frecuentes

  • No validar entradas o retornos de funciones estándar.
  • No controlar casos borde (buffers, límites, punteros nulos).
  • Omitir comprobaciones básicas de compilación y ejecución.

Aplicación práctica

Los árboles AVL se usan en bases de datos, sistemas de archivos y cualquier estructura donde la búsqueda equilibrada es crítica.

Siguiente ejercicio recomendado

Práctica guiada y libro completo

Si quieres una ruta completa con progresión real de dificultad:

FAQ

¿Este ejercicio sirve para entrevistas y exámenes de C?

Sí. Trabaja patrones que aparecen mucho en prácticas, entrevistas técnicas y evaluaciones de programación en C.

¿Dónde seguir con más ejercicios resueltos de C?

En Programación en C en 100 ejercicios resueltos y en Ejercicios C. Kindle Unlimited: Ver en Amazon.

¿Cómo practicar este tipo de ejercicio para mejorar más rápido?

Empieza con entradas pequeñas, prueba casos límite (vacío, un elemento y capacidad máxima) y luego reescribe la solución sin copiarla.