#include <stdio.
h>
#include <stdlib.h>
#define SIZE 5
int items[SIZE];
int front = -1, rear = -1;
// Check if the queue is full
int isFull() {
return rear == SIZE - 1;
}
// Check if the queue is empty
int isEmpty() {
return front == -1 || front > rear;
}
// Add an element to the queue
void enQueue(int element) {
if (isFull()) {
printf("\nQueue is full!!\n");
return;
}
if (front == -1) front = 0; // First element being added
items[++rear] = element;
printf("\nInserted -> %d", element);
}
// Remove an element from the queue
int deQueue() {
if (isEmpty()) {
printf("\nQueue is empty!!\n");
return -1;
}
int element = items[front++];
if (front > rear) { // Reset if the queue becomes empty
front = rear = -1;
}
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++) {
printf("%d ", items[i]);
}
printf("\nRear -> %d\n", 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;
}