Implementation of Circular Queue operations like enQueue(), deQueue() and display() using Array
#include<stdio.h>
#include<stdlib.h>
#define MAX 5
int front = -1, rear = -1;
int queue[MAX];
void enQueue(int item)
{
if((rear+1)% MAX == front)
{
printf("\nQUEUE IS FULL");
return;
}
if(front == -1)
{
front = 0;
}
rear = (rear+1)% MAX;
queue[rear] = item;
}
int deQueue()
{
int item;
if(front == -1)
{
printf("\nQUEUE IS EMPTY\n");
return -1;
}
item = queue[front];
if(front == rear)
{
front = -1;
rear = -1;
}
front = (front + 1) % MAX;
return item;
}
void displayQ()
{
int i;
if(front == -1)
{
printf("\nCircular Queue is Empty!!!\n");
return;
}
for(i=front;i!=rear;i=(i+1)%MAX)
{
printf("%d ",queue[i]);
}
printf("%d",queue[i]);
}
int main ()
{
int ch, item;
while(ch != 4)
{
printf("\nENTER YOUR CHOICE");
printf("\n Press 1 -> insert an element");
printf("\n Press 2 -> delete an element");
printf("\n Press 3 -> display the queue");
printf("\n Press 4 -> exit");
printf("\nEnter your choice = ");
scanf("%d",&ch);
switch(ch)
{
case 1: printf("\nEnter the element = ");
scanf("%d",&item);
enQueue(item);
break;
case 2: item = deQueue();
printf("\n The deleted item is %d",item);
break;
case 3: displayQ();
break;
case 4: exit(0);
default: printf("\n*********Enter valid choice*********\n");
}
}
return 0;
}
OUTPUT :
Post a Comment
0 Comments