Sunday, 17 August 2025

Write a program which performs the following operations using a simple queue. : insert() -> delete() -> display()

Write a program which performs the following operations using a simple queue. : insert() -> delete() -> display()

queue_implementation.c
#include <stdio.h>
#define MAX 5   // size of the queue

int queue[MAX];
int front = -1, rear = -1;

// Function to insert an element in queue
void insert(int val) {
    if(rear == MAX - 1) {
        printf("Queue Overflow! Cannot insert %d\n", val);
    } else {
        if(front == -1) front = 0;   // first insertion
        rear++;
        queue[rear] = val;
        printf("%d inserted into the queue.\n", val);
    }
}

// Function to delete an element from queue
void delete() {
    if(front == -1 || front > rear) {
        printf("Queue Underflow! No elements to delete.\n");
    } else {
        printf("%d deleted from the queue.\n", queue[front]);
        front++;
    }
}

// Function to display queue elements
void display() {
    if(front == -1 || front > rear) {
        printf("Queue is empty.\n");
    } else {
        printf("Queue elements: ");
        for(int i = front; i <= rear; i++) {
            printf("%d ", queue[i]);
        }
        printf("\n");
    }
}

// Main function to demonstrate queue
int main() {
    insert(10);
    insert(20);
    insert(30);
    display();

    delete();
    display();

    insert(40);
    insert(50);
    insert(60); // should give overflow
    display();

    delete();
    delete();
    delete();
    delete(); // should give underflow
    display();

    return 0;
}

✅ Step-by-Step Explanation

🔹 Queue Structure

  • queue[MAX]: Array to store elements
  • front: Points to first element (initialized to -1)
  • rear: Points to last element (initialized to -1)

🔹 Insert Operation

void insert(int val) {
    if(rear == MAX - 1) {
        printf("Queue Overflow! Cannot insert %d\n", val);
    } else {
        if(front == -1) front = 0;
        rear++;
        queue[rear] = val;
    }
}
  • Overflow check: If rear == MAX-1, queue is full
  • First insertion: Sets front to 0 when inserting first element
  • Normal insertion: Increments rear and adds element

🔹 Delete Operation

void delete() {
    if(front == -1 || front > rear) {
        printf("Queue Underflow! No elements to delete.\n");
    } else {
        printf("%d deleted from the queue.\n", queue[front]);
        front++;
    }
}
  • Underflow check: If front == -1 or front > rear, queue is empty
  • Normal deletion: Removes element at front and increments front pointer

🔹 Display Operation

void display() {
    if(front == -1 || front > rear) {
        printf("Queue is empty.\n");
    } else {
        printf("Queue elements: ");
        for(int i = front; i <= rear; i++) {
            printf("%d ", queue[i]);
        }
        printf("\n");
    }
}
  • Displays all elements from front to rear
  • Shows empty message if queue is empty

🖨️ Example Run (Sample Output)

10 inserted into the queue.
20 inserted into the queue.
30 inserted into the queue.
Queue elements: 10 20 30
10 deleted from the queue.
Queue elements: 20 30
40 inserted into the queue.
50 inserted into the queue.
Queue Overflow! Cannot insert 60
Queue elements: 20 30 40 50
20 deleted from the queue.
30 deleted from the queue.
40 deleted from the queue.
50 deleted from the queue.
Queue Underflow! No elements to delete.
Queue is empty.

📌 Key Concepts Covered

FIFO Principle
First-In-First-Out behavior of queues
Array Implementation
Using array with front and rear pointers
Overflow/Underflow
Handling queue full and empty conditions
Basic Operations
Insert (enqueue), Delete (dequeue), and Display
Pointer Management
Proper handling of front and rear pointers

No comments:

Post a Comment

Total Pageviews

Search This Blog

Write a program which performs the following operations using a simple queue. : insert() -> delete() -> display()

Write a program which performs the following operations using a simple queue. : insert() -> delete() -> display() ...