Circular queue

suwalganesh 95 views 3 slides Jun 11, 2021
Slide 1
Slide 1 of 3
Slide 1
1
Slide 2
2
Slide 3
3

About This Presentation

Circular Queue, Data Structure and Algorithm


Slide Content

/*@author: Er.Ganesh Ram Suwal*/
/*Circular Queue*/
#include<stdio.h>
#include<conio.h>
#include<process.h>
#define MAX 5
int QUEUE[MAX],i,data,front = -1, rear = -1;
void enqueue();
void dequeue();
void display();
void main()
{
int choice;
clrscr();
start:
printf("\n*********************************************************\n");
printf("\n*********************************************************\n");
printf(" Queue operation ");
printf("\n*********************************************************\n");
printf("1:Enqueue\n2:Dequeue\n3:Display\n4:exit\nEnter your choice:");
scanf("%d",&choice);
switch(choice)
{
case 1:enqueue();
break;
case 2:dequeue();
break;
case 3:display();
break;
case 4: exit(0);
break;
default:
printf("\n*********************************************************\n");
printf("Invalid Choice");
printf("\n*********************************************************\n");
}
goto start;
}




void enqueue()
{
if(front == (rear+1)%MAX)
{
printf("\n*********************************************************\n");
printf(" Queue overflow");

printf("\n*********************************************************\n");
}
else
{
printf("Enter data : ");
scanf("%d",&data);
if(front == -1)
{
front = 0;
rear = 0;
}
else
{
rear = (rear + 1)%MAX;
}
QUEUE[rear] = data;
}
}



void dequeue()
{
printf("\n*********************************************************\n");
if(front == -1)
{
printf(" QUEUE UNDERFLOW");
}
else
{
data = QUEUE[front];
if(rear == front)
{
rear = -1;
front = -1;
}
else
{
front = (front + 1)%MAX;
}
printf("Dequeue element = %d",data);
}
printf("\n*********************************************************\n");
}

void display()
{
printf("\n*********************************************************\n");
if(front == -1)
{
printf("No data in the queue\n");
printf("f = %d, r=%d",front,rear);
}
else
{
if(rear>front)
{
for(i = front;i<=rear; i++)
{
printf("%d ",QUEUE[i]);
}
}
else if(rear == front)
{
printf("%d ",QUEUE[rear]);

}
else
{

for(i=front;i<=MAX-1;i++)
{
printf("%d ",QUEUE[i]);
}
for(i=0;i<=rear;i++)
{
printf("%d ",QUEUE[i]);
}

}

printf("\nf = %d, r=%d",front,rear);
}
printf("\n*********************************************************\n");
}