ccompiler.inOnline C Compiler & Docs
C Example Code2026-03-202 min read

Implement a FIFO Queue data structure in C using fixed arrays. Complete code for enqueue, dequeue, peek, and capacity overflow management.

Queue FIFO Principles

A Queue is a First-In, First-Out (FIFO) data structure where elements are inserted at the rear (enqueue) and removed from the front (dequeue).


C Code Implementation

c (ISO Standard)
#include <stdio.h>
#include <stdbool.h>

#define QUEUE_SIZE 5

typedef struct {
    int data[QUEUE_SIZE];
    int front;
    int rear;
} Queue;

void initQueue(Queue *q) {
    q->front = -1;
    q->rear = -1;
}

bool isEmpty(const Queue *q) {
    return q->front == -1;
}

bool isFull(const Queue *q) {
    return q->rear == QUEUE_SIZE - 1;
}

void enqueue(Queue *q, int value) {
    if (isFull(q)) {
        printf("Queue is full! Cannot enqueue %d.\n", value);
        return;
    }
    if (q->front == -1) q->front = 0;
    q->data[++(q->rear)] = value;
    printf("Enqueued: %d\n", value);
}

int dequeue(Queue *q) {
    if (isEmpty(q)) {
        printf("Queue is empty! Cannot dequeue.\n");
        return -1;
    }
    int item = q->data[q->front];
    if (q->front >= q->rear) {
        /* Reset queue once all items are dequeued */
        q->front = -1;
        q->rear = -1;
    } else {
        q->front++;
    }
    return item;
}

int main() {
    Queue q;
    initQueue(&q);

    enqueue(&q, 100);
    enqueue(&q, 200);
    enqueue(&q, 300);

    printf("Dequeued: %d\n", dequeue(&q));
    printf("Dequeued: %d\n", dequeue(&q));

    return 0;
}

Sample Output

text (ISO Standard)
Enqueued: 100
Enqueued: 200
Enqueued: 300
Dequeued: 100
Dequeued: 200

Complexity Analysis

  • Enqueue / Dequeue: O(1) constant time.
  • Auxiliary Space: O(QUEUE_SIZE) static array.

Related C Examples & Tutorials