Cola en C: ejercicio resuelto
Si buscas cola en C ejercicio resuelto, este ejemplo muestra una implementación de cola FIFO con array circular.
Enunciado
Implementa una cola con operaciones:
enqueue,dequeue,- control de llena y vacía.
Solución en C
#include <stdio.h>
#define CAP 5
typedef struct {
int data[CAP];
int front, rear, size;
} Queue;
void init(Queue *q) { q->front = 0; q->rear = -1; q->size = 0; }
int is_empty(Queue *q) { return q->size == 0; }
int is_full(Queue *q) { return q->size == CAP; }
int enqueue(Queue *q, int x) {
if (is_full(q)) return 0;
q->rear = (q->rear + 1) % CAP;
q->data[q->rear] = x;
q->size++;
return 1;
}
int dequeue(Queue *q, int *out) {
if (is_empty(q)) return 0;
*out = q->data[q->front];
q->front = (q->front + 1) % CAP;
q->size--;
return 1;
}
int main(void) {
Queue q;
int v;
init(&q);
enqueue(&q, 7);
enqueue(&q, 8);
enqueue(&q, 9);
dequeue(&q, &v); printf("Sale: %d\n", v);
dequeue(&q, &v); printf("Sale: %d\n", v);
return 0;
}Salida esperada
Sale: 7
Sale: 8Errores frecuentes
- No usar módulo
% CAPpara circular. - Mezclar estado de vacía con
front == rearsin usarsize. - No comprobar underflow en
dequeue.
Aplicación práctica
Las colas FIFO son base en sistemas de mensajeria, pipelines y procesamiento de tareas asíncronas.
Siguiente ejercicio recomendado
- Lista simplemente enlazada en C: ejercicio resuelto con inserción y borrado
- Pila en C (stack): ejercicio resuelto con push, pop y peek
- Búsqueda binaria en C: ejercicio resuelto en array ordenado
- Todos los ejercicios de C
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.