Circular Queue
Circular Queue
#include <stdio.h>
#define MAX_SIZE 5
int queue[MAX_SIZE];
int front = -1, rear = -1;
int isFull()
{
return (rear + 1) % MAX_SIZE == front;
}int isEmpty()
{
return front == -1;
}void enqueue(int data)
{
if (isFull())
{
printf("Queue overflow\n");
return;
}if(front == -1)
{
front = 0;
}rear = (rear + 1) % MAX_SIZE;
queue[rear] = data;
printf("Element %d inserted\n", data);
}
int dequeue()
{
if (isEmpty())
{
printf("Queue underflow\n");
return -1;
}
return data;
}
void display()
{
if (isEmpty())
{
printf("Queue is empty\n");
return;
}
printf("%d\n", queue[rear]);
}
int main()
{
enqueue(10);
enqueue(20);
enqueue(30);
display();
printf("Dequeued element: %d\n", dequeue());
display();
return 0;
}
OUTPUT
Element 10 inserted
Element 20 inserted
Element 30 inserted
Queue elements: 10 20 30
Dequeued element: 10
Queue elements: 20 30
=== Code Execution Successful ===