Pila en C: ejercicio resuelto
Si buscas pila en C ejercicio resuelto, aquí tienes una implementación clara de stack con validaciones.
Enunciado
Implementa una pila de enteros con:
push,pop,peek,- funciones de comprobacion de estado.
Solución en C
#include <stdio.h>
#define CAP 5
typedef struct {
int data[CAP];
int top;
} Stack;
void init(Stack *s) { s->top = -1; }
int is_empty(Stack *s) { return s->top < 0; }
int is_full(Stack *s) { return s->top == CAP - 1; }
int push(Stack *s, int x) {
if (is_full(s)) return 0;
s->data[++s->top] = x;
return 1;
}
int pop(Stack *s, int *out) {
if (is_empty(s)) return 0;
*out = s->data[s->top--];
return 1;
}
int peek(Stack *s, int *out) {
if (is_empty(s)) return 0;
*out = s->data[s->top];
return 1;
}
int main(void) {
Stack s;
int v;
init(&s);
push(&s, 10);
push(&s, 20);
push(&s, 30);
peek(&s, &v); printf("Top: %d\n", v);
pop(&s, &v); printf("Pop: %d\n", v);
peek(&s, &v); printf("Top: %d\n", v);
return 0;
}Salida esperada
Top: 30
Pop: 30
Top: 20Caso borde recomendado
Prueba estos dos escenarios en la misma ejecución:
- hacer
popsobre pila vacía (underflow), - intentar
pushcuandotop == CAP - 1(overflow).
Así validas que las funciones devuelven 0 en error sin corromper estado.
Errores frecuentes
- No controlar overflow al hacer
push. - No controlar underflow al hacer
pop. - Olvidar inicializar
topen-1. - Incrementar/decrementar
topen el orden incorrecto y leer fuera de rango.
Complejidad temporal y espacial
push,popypeek: O(1).- Espacio total: O(n) por el array de capacidad fija
CAP.
Aplicación práctica
Las pilas aparecen en parseo, deshacer/rehacer y evaluacion de expresiones.
Siguiente ejercicio recomendado
- Cola en C (queue): ejercicio resuelto con array circular
- Lista simplemente enlazada en C: ejercicio resuelto con inserción y borrado
- Búsqueda binaria en C: ejercicio resuelto en array ordenado
- Todos los ejercicios de C
Práctica guiada y siguiente paso
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.