#include <stdio.
h>
#define SIZE 5
int items[SIZE];
int front = -1, rear = -1;
// Check if the queue is full
int isFull() {
return (front == (rear + 1) % SIZE);
}
// Check if the queue is empty
int isEmpty() {
return (front == -1);
}
// Adding an element
void enQueue(int element) {
if (isFull()) {
printf("\nQueue is full!!\n");
return;
}
if (front == -1) front = 0; // First element being added
rear = (rear + 1) % SIZE;
items[rear] = element;
printf("\nInserted -> %d", element);
}
// Removing an element
int deQueue() {
if (isEmpty()) {
printf("\nQueue is empty!!\n");
return -1;
}
int element = items[front];
if (front == rear) {
front = rear = -1; // Reset if queue becomes empty
} else {
front = (front + 1) % SIZE;
}
printf("\nDeleted element -> %d\n", element);
return element;
}
// Display the queue
void display() {
if (isEmpty()) {
printf("\nEmpty Queue\n");
return;
}
printf("\nFront -> %d\nItems -> ", front);
for (int i = front; i != rear; i = (i + 1) % SIZE) {
printf("%d ", items[i]);
}
printf("%d\nRear -> %d\n", items[rear], rear);
}
int main() {
enQueue(10);
enQueue(20);
enQueue(30);
display();
deQueue();
display();
enQueue(40);
enQueue(50);
enQueue(60); // Should indicate the queue is full
display();
return 0;
}