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 Data Structures
- Compare with LIFO in Stack Implementation in C Using Array.
- Master structs in Structures in C.