//Circular queue
#include<stdio.h>
#include<stdlib.h>
int front = -1, rear = -1, queue[100];
void enqueue(int item, int size) {
if ((rear + 1) % size == front) {
printf("Circular queue is full. Enqueue operation not possible\n");
} else {
if (front == -1) {
front = 0;
}
rear = (rear + 1) % size;
queue[rear] = item;
printf("%d is enqueued to the circular queue\n", item);
}
}
void dequeue(int size) {
if (front == -1) {
printf("Circular queue is empty. Dequeue operation not possible\n");
} else {
printf("%d is dequeued from the circular queue\n", queue[front]);
if (front == rear) {
front = rear = -1;
} else {
front = (front + 1) % size;
}
}
}
void display(int size) {
if (front == -1) {
printf("Circular queue is empty\n");
} else {
printf("Circular queue elements: ");
int i = front;
do {
printf("%d ", queue[i]);
i = (i + 1) % size;
} while (i != (rear + 1) % size);
printf("\n");
}
}
int main() {
int option, item, size;
char choice;
printf("Enter the size of the circular queue: ");
scanf("%d", &size);
do {
printf("\nMenu:\n1. Enqueue\n2. Dequeue\n3. Display\n");
printf("Enter your choice: ");
scanf("%d", &option);
switch (option) {
case 1:
printf("Enter the element to be inserted: ");
scanf("%d", &item);
enqueue(item, size);
break;
case 2:
dequeue(size);
break;
case 3:
display(size);
break;
default:
printf("Invalid input\n");
}
printf("Do you want to continue? (press Y/N): ");
scanf(" %c", &choice);
} while (choice == 'Y' || choice == 'y');
return 0;
}