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
#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
Original: programacion
Invertida: noicamargorpCaso borde recomendado
Prueba dos entradas mínimas:
Original: ""
Invertida: ""
Original: "A"
Invertida: ASirve 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
- Búsqueda binaria en C: ejercicio resuelto en array ordenado
- Cola en C (queue): ejercicio resuelto con array circular
- Ficheros en C: ejercicio resuelto para contar lineas y caracteres
- Todos los ejercicios de C
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.