Recursividad en C: ejercicio resuelto para invertir una cadena

Recursividad en C: ejercicio resuelto

Si buscas recursividad en C ejercicio resuelto, este ejemplo te enseña una estructura clásica: caso base, llamada recursiva y trabajo al volver.

Enunciado

Implementa una función recursiva que imprima una cadena al revés sin usar arrays auxiliares.

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
#include <stdio.h>

void imprimir_reves(const char *s) {
    if (*s == '\0') {
        return;
    }

    imprimir_reves(s + 1);
    putchar(*s);
}

int main(void) {
    const char *texto = "programacion";

    printf("Original: %s\n", texto);
    printf("Invertida: ");
    imprimir_reves(texto);
    putchar('\n');

    return 0;
}

Salida esperada

1
2
Original: programacion
Invertida: noicamargorp

Caso borde recomendado

Prueba dos entradas mínimas:

1
2
3
4
5
Original: ""
Invertida: ""

Original: "A"
Invertida: A

Sirve para verificar que el caso base corta la recursión correctamente.

Cómo pensar la recursión aquí

  • caso base: cadena vacía,
  • avance: s + 1,
  • fase de retorno: imprimir carácter actual.

Errores frecuentes

  • Olvidar el caso base.
  • Crear recursión infinita.
  • Confundir el orden de impresión (antes o después de llamar).
  • No avanzar el puntero (s + 1) y quedarse en la misma dirección de memoria.

Complejidad temporal y espacial

  • Tiempo: O(n), se visita cada carácter una vez.
  • Espacio extra: O(n) por la pila de llamadas recursivas.

Aplicación práctica

La recursión sigue apareciendo en parseo de estructuras jerárquicas, navegación de árboles y análisis de datos anidados.

Siguiente ejercicio recomendado

Práctica guiada y siguiente paso

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

FAQ

¿Cuándo usar recursión en C y cuándo no?

Úsala cuando el problema sea naturalmente recursivo. Para casos lineales simples, una versión iterativa suele ser más eficiente.

¿Dónde hay más ejercicios de recursión y C?

En Programación en C en 100 ejercicios resueltos y en la sección de 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.