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

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#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

1
2
Sale: 7
Sale: 8

Errores frecuentes

  • No usar módulo % CAP para circular.
  • Mezclar estado de vacía con front == rear sin usar size.
  • 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

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.