Program: Array Implementation of Circular Queue
#include <stdio.h>
#define SIZE 3
int cq[SIZE], front = -1, rear = -1;
void enqueue() {
int x;
printf("Enter value:");
scanf(" %d", &x);
if ((rear + 1) % SIZE == front)
printf("Queue Full\n");
else {
if (front == -1) front = 0;
rear = (rear + 1) % SIZE;
cq[rear] = x;
}
}
void dequeue() {
if (front == -1)
printf("Queue Empty\n");
else {
printf("Deleted: %d\n", cq[front]);
if (front == rear)
front = rear = -1;
else
front = (front + 1) % SIZE;
}
}
void display() {
int i;
if(front<rear)
{
for (i=front; i<=rear; i++)
printf("%d ", cq[i]);
}
if(front>rear)
{
for (i=front; i<=SIZE-1; i++)
printf("%d ", cq[i]);
for (i=0; i<=rear; i++)
printf("%d ", cq[i]);
}
printf(“\n”);
}
int main() {
int choice;
do
{
printf("Enter your Choice: 1: enqueue \t 2: dequeue \t 3: display \t 4: exit \n");
scanf(" %d", &choice);
if (choice==1) enqueue();
else if (choice==2) dequeue();
else if (choice==3) display();
else if (choice!=4) printf("Enter valid Choice");
}while(choice!=4);
return 0;
}
Output:
Enter your Choice: 1: enqueue 2: dequeue 3: display 4: exit
1
Enter value:10
Enter your Choice: 1: enqueue 2: dequeue 3: display 4: exit
1
Enter value:20
Enter your Choice: 1: enqueue 2: dequeue 3: display 4: exit
1
Enter value:30
Enter your Choice: 1: enqueue 2: dequeue 3: display 4: exit
3
10 20 30
Enter your Choice: 1: enqueue 2: dequeue 3: display 4: exit
2
Deleted: 10
Enter your Choice: 1: enqueue 2: dequeue 3: display 4: exit
1
Enter value:40
Enter your Choice: 1: enqueue 2: dequeue 3: display 4: exit
1
Enter value:50
Queue Full
Enter your Choice: 1: enqueue 2: dequeue 3: display 4: exit
3
20 30 40
Enter your Choice: 1: enqueue 2: dequeue 3: display 4: exit
2
Deleted: 20
Enter your Choice: 1: enqueue 2: dequeue 3: display 4: exit
2
Deleted: 30
Enter your Choice: 1: enqueue 2: dequeue 3: display 4: exit
2
Deleted: 40
Enter your Choice: 1: enqueue 2: dequeue 3: display 4: exit
2
Queue Empty
Enter your Choice: 1: enqueue 2: dequeue 3: display 4: exit