You are on page 1of 6

#include<iostream.

h>
#include<conio.h>
#include<stdio.h>
#include<process.h>
int size=3;
class array_queue
{
int front,rear;
int arr[30];
public:
array_queue()
{
front=rear=-1;
}
int isempt()
{
if((front==-1)&&(rear==-1))
{
cout<<"\nqueue is empty!!!\n";
return 1;
}
else
return 0;
}
int is_full()
{
if((front==0)&&(rear==(size-1))||(((rear+1)%size)==front))
{

cout<<"\nqueue is full!!\n";
return 1;
}
else
return 0;
}

int enqueue(int);
int dequeue();
void display();
};
int array_queue::enqueue(int el)
{
if(is_full())
{
return 0;
}
else
if(isempt())
{
front=rear=0;
}
else
{
rear=(rear+1)%size;
}
arr[rear]=el;
return 1;

}
int array_queue::dequeue()
{
if(isempt())
{
return 0;
}
else
if(front==rear)
{cout<<"\nDequeue element is: "<<arr[front]<<endl;
front=rear=-1;
}
else
{cout<<"\nDequeue element is: "<<arr[front]<<endl;
front=(front+1)%size;
}
return 1;
}
void array_queue::display()
{
if(!isempt())
{ cout<<"the queue is: ";
if(rear<front)
{
for(int i=front;i<=size-1;i++)
{
cout<<arr[i]<<"->";
}

for(int j=0;j<=rear;j++)
{
cout<<arr[j]<<"->";
}
}
else
{
for(int k=front;k<=rear;k++)
{
cout<<arr[k]<<"->";
}
}
}
}
int main()
{
array_queue a;
int data,opt,c;
char ch;
clrscr();
do
{
do{
cout<<"\nMenu\n"
<<"1.enqueue\n"
<<"2.dequeue\n"
<<"enter your choice(1-2)\n";
cin>>opt;

switch(opt)
{
case 1: cout<<"enter the data which you wants to enqueue\n";
cin>>data;
c=a.enqueue(data);
a.display();
break;
case 2:c=a.dequeue();
a.display();
break;
default: cout<<"you have enter wrong!!!";
break;
}
if(c!=0)
{
cout<<"\ndo you wants to (enqueue/dequeue) more element\n";
cin>>ch;
clrscr();
}
}while(ch=='y');
if(c!=0)
{
cout<<"After all modification, ";
a.display();
}
c=1;
cout<<"\ndo you wants to exit(y/n)\n";
cin>>ch;

}
while(ch=='n'||ch=='N');
getch();
return 0;
}

You might also like