PRAC13
PRAC13
#include<stdio.h>
#define MAX 10
struct que
int arr[MAX];
int front,rear;
};
q->front=-1;
q->rear=-1;
int i;
i=q.front;
while(i!=q.rear)
cout<<"\t"<<q.arr[i];
i=(i+1)%MAX;
cout<<"\t"<<q.arr[q.rear];
{
return q.rear==-1?1:0;
return (q.rear+1)%MAX==q.front?1:0;
if(isempty(*q))
q->front=q->rear=0;
q->arr[q->front]=data;
else
q->front=(q->front-1+MAX)%MAX;
q->arr[q->front]=data;
if(isempty(*q))
q->front=q->rear=0;
q->arr[q->rear]=data;
else
{
q->rear=(q->rear+1)%MAX;
q->arr[q->rear]=data;
int data1;
data1=q->arr[q->front];
if(q->front==q->rear)
init(q);
else
q->front=(q->front+1)%MAX;
return data1;
int data1;
data1=q->arr[q->rear];
if(q->front==q->rear)
init(q);
else
q->rear=(q->rear-1+MAX)%MAX;
return data1;
int main()
struct que q;
int data,ch;
init(&q);
while(ch!=6)
cout<<"\t\n1.Insert front"
"\t\n2.Insert rear"
"\t\n3.Delete front"
"\t\n4.Delete rear"
"\t\n5.Print"
"\t\n6.Exit";
cin>>ch;
switch(ch)
case 1:
cin>>data;
addf(&q,data);
break;
case 2:
cin>>data;
addr(&q,data);
break;
case 3:
if(isempty(q))
cout<<"\nDequeue is empty!!!";
else
data=delf(&q);
cout<<"\nDeleted data is : "<<data;
break;
case 4:
if(isempty(q))
cout<<"\nDequeue is empty!!!";
else
data=delr(&q);
break;
case 5:
if(isempty(q))
cout<<"\nDequeue is empty!!!";
else
print(q);
break;
return 0;
OUTPUT: