Cola en C (queue): ejercicio resuelto con array circular

  2 minutos

Si buscas cola en C ejercicio resuelto, este ejemplo muestra una implementación de cola FIFO con array circular.

Implementa una cola con operaciones:

  • enqueue,
  • dequeue,
  • control de llena y vacía.
#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;
}
Sale: 7
Sale: 8
  • No usar módulo % CAP para circular.
  • Mezclar estado de vacía con front == rear sin usar size.
  • No comprobar underflow en dequeue.

Las colas FIFO son base en sistemas de mensajeria, pipelines y procesamiento de tareas asíncronas.

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

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

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

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.