C Programs | IT Developer
IT Developer

C Programs



Share with a Friend

Data Structures in C

Queue Implementation using Array

C Program to implement a Queue using an Array, including enqueue, dequeue, peek, and display operations — a simple and clear implementation perfect for your course or book.

 

C Program: Queue Implementation using Array

C

#include <stdio.h>

#include <stdlib.h>

 

#define SIZE 100  // Define the maximum size of the queue

 

int queue[SIZE];

int front = -1;

int rear = -1;

 

// Function to check if queue is full

int isFull() {

    return (rear == SIZE - 1);

}

 

// Function to check if queue is empty

int isEmpty() {

    return (front == -1 || front > rear);

}

 

// Function to enqueue (insert) an element

void enqueue(int value) {

    if (isFull()) {

        printf("\nQueue Overflow! Cannot insert %d\n", value);

        return;

    }

 

    if (front == -1)

        front = 0;

 

    rear++;

    queue[rear] = value;

    printf("\n%d enqueued to queue.\n", value);

}

 

// Function to dequeue (remove) an element

void dequeue() {

    if (isEmpty()) {

        printf("\nQueue Underflow! No elements to dequeue.\n");

        return;

    }

 

    printf("\n%d dequeued from queue.\n", queue[front]);

    front++;

 

    // Reset queue when all elements are removed

    if (front > rear)

        front = rear = -1;

}

 

// Function to peek (view the front element)

void peek() {

    if (isEmpty()) {

        printf("\nQueue is empty.\n");

        return;

    }

    printf("\nFront element is: %d\n", queue[front]);

}

 

// Function to display all elements

void display() {

    if (isEmpty()) {

        printf("\nQueue is empty.\n");

        return;

    }

 

    printf("\nQueue elements are:\n");

    for (int i = front; i <= rear; i++)

        printf("%d ", queue[i]);

    printf("\n");

}

 

// Main function

int main() {

    int choice, value;

 

    printf("=== QUEUE IMPLEMENTATION USING ARRAY ===\n");

 

    while (1) {

        printf("\nMenu:\n");

        printf("1. Enqueue\n");

        printf("2. Dequeue\n");

        printf("3. Peek\n");

        printf("4. Display\n");

        printf("5. Exit\n");

        printf("Enter your choice: ");

        scanf("%d", &choice);

 

        switch (choice) {

            case 1:

                printf("Enter value to enqueue: ");

                scanf("%d", &value);

                enqueue(value);

                break;

            case 2:

                dequeue();

                break;

            case 3:

                peek();

                break;

            case 4:

                display();

                break;

            case 5:

                printf("\nExiting program.\n");

                exit(0);

            default:

                printf("\nInvalid choice! Try again.\n");

        }

    }

 

    return 0;

}

Output

 
OUTPUT :

=== QUEUE IMPLEMENTATION USING ARRAY ===

Menu:
1. Enqueue
2. Dequeue
3. Peek
4. Display
5. Exit
Enter your choice: 1
Enter value to enqueue: 10
10 enqueued to queue.

Enter your choice: 1
Enter value to enqueue: 20
20 enqueued to queue.

Enter your choice: 4
Queue elements are:
10 20

Enter your choice: 2
10 dequeued from queue.

Enter your choice: 3
Front element is: 20

Explanation

Operation

Description

Enqueue

Adds an element to the rear of the queue.

Dequeue

Removes an element from the front of the queue.

Peek

Displays the element at the front without removing it.

Display

Shows all elements currently present in the queue.