wap for implementation of circular queue
TRANSCRIPT
![Page 1: WAP for Implementation of Circular Queue](https://reader037.vdocuments.net/reader037/viewer/2022103015/55219eaa4979599d608b467d/html5/thumbnails/1.jpg)
//WAP for implementation of circular queue...
#include<conio.h>
#include<stdio.h>
int flag;
void main()
{
void push(int queue[],int *rear,int *front,int n);//*front
void pop(int queue[],int *front,int *rear,int n);//n
void display(int stack[],int *front,int *rear);
int queue[30],front,rear,ch;
front=-1;
rear=-1;
flag=0;
clrscr();
printf("enter choice...\n\n");
printf("1::push\n2::pop\n3::display\n\n");
scanf("%d",&ch);
label:
switch(ch)
{
case 1: push(queue,&rear,&front,10);
if(flag==1)
printf("queue overflow\n");
else
printf("to push more values press 1\n");
![Page 2: WAP for Implementation of Circular Queue](https://reader037.vdocuments.net/reader037/viewer/2022103015/55219eaa4979599d608b467d/html5/thumbnails/2.jpg)
printf("to pop values press 2\n");
printf("to display the queue press 3\n");
printf("to EXIT press 0\n\n");
scanf("%d",&ch);
if(ch==0)
break;
else
goto label;
case 2:pop(queue,&front,&rear,10);
if(flag==2)
printf("queue is empty\n");
else
printf("to pop more values press 2\n");
printf("to push values press 1\n");
printf("to display the queue press 3\n");
printf("to EXIT press 0\n\n");
scanf("%d",&ch);
if(ch==0)
break;
else
goto label;
case 3:display(queue,&front,&rear);
printf("to push values press 1\n");
printf("to pop values press 2\n");
![Page 3: WAP for Implementation of Circular Queue](https://reader037.vdocuments.net/reader037/viewer/2022103015/55219eaa4979599d608b467d/html5/thumbnails/3.jpg)
printf("to display the queue press 3\n");
printf("to EXIT press 0\n\n");
scanf("%d",&ch);
if(ch==0)
break;
else
goto label;
}
getch();
}
void push(int queue[],int *rear,int *front,int n) //*front
{
int val;
printf("enter value to be pushed\n");
scanf("%d",&val);
if((*rear)<(n-1)&&(*rear)>=(*front)&&(*front)!=-1)
{
queue[++(*rear)]=val;
printf("rear = %d\n",*rear);
}
else if(*rear==-1&&*front==-1)
{
queue[++(*rear)]=val;
![Page 4: WAP for Implementation of Circular Queue](https://reader037.vdocuments.net/reader037/viewer/2022103015/55219eaa4979599d608b467d/html5/thumbnails/4.jpg)
printf("rear = %d\n",*rear);
(*front)++;
}
else if(*rear>=(n-1)&&(*front)>0)
{
flag=0;
*rear=0;
queue[*rear]=val;
printf("rear = %d\n",*rear);
}
else if(*rear<(*front-1))
{
flag=0;
queue[++(*rear)]=val;
printf("rear = %d\n",*rear);
}
else
{
printf("queue overflow\n\n");
flag=1;
}
}
void pop(int queue[],int *front,int *rear,int n) //n
{
![Page 5: WAP for Implementation of Circular Queue](https://reader037.vdocuments.net/reader037/viewer/2022103015/55219eaa4979599d608b467d/html5/thumbnails/5.jpg)
int val;
if((*front)<=(n-1)&&(*front)<(*rear))
{
val=queue[(*front)];
printf("popped value is:: %d\n",val);
printf("front = %d\n",(*front)+1);
(*front)++;
}
else if((*front)==(*rear)&&(*front)!=-1)
{
val=queue[(*front)];
printf("popped value is:: %d\n",val);
printf("front = %d\n",(*front)+1);
*front=-1;
*rear=-1;
flag=0;
}
else if((*front)>(*rear)&&(*front)<=(n-1))
{
val=queue[(*front)];
printf("popped value is:: %d\n",val);
printf("front = %d\n",(*front)+1);
flag=0;
(*front)++;
}
![Page 6: WAP for Implementation of Circular Queue](https://reader037.vdocuments.net/reader037/viewer/2022103015/55219eaa4979599d608b467d/html5/thumbnails/6.jpg)
else if((*front)==n)
{
(*front)=0;
val=queue[(*front)];
printf("popped value is:: %d\n",val);
printf("front = %d\n",(*front)+1);
flag=0;
(*front)++;
}
else
{
printf("queue is empty\n");
flag=2;
}
}
void display(int queue[],int *front,int *rear)
{
int i;
printf ("\nthe queue is::\n");
if(((*front)==-1)&&(*rear==-1))
printf("queue is empty\n");
if(*front<*rear)
![Page 7: WAP for Implementation of Circular Queue](https://reader037.vdocuments.net/reader037/viewer/2022103015/55219eaa4979599d608b467d/html5/thumbnails/7.jpg)
{
for(i=((*front));i<=(*rear);i++)
{
printf("%d\n",queue[i]);
}
}
if((*rear)<(*front))
{
for(i=(*front);i<10;i++)
{
printf("%d\n",queue[i]);
}
for(i=0;i<=(*rear);i++)
{
printf("%d\n",queue[i]);
}
}
}