CPP Program to implement a queue using circular array
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<math.h>
const int max=10;
class queue
{ private:
int
a[max];
int
front,rear;
public:
queue(void);
void
addq(int);
int
delq(void);
void
display(void);
int
count(void);
};
queue::queue(void)
{
front=rear=-1;
}
void queue::addq(int item)
{ if((front==rear+1)||(front==1&&rear==max-1))
{ cout<<"\n Queue is full.
";
return;
}
if(front==-1)
front=rear=0;
else
if(rear==max-1)
rear=0;
else
rear++;
a[rear]=item;
}
int queue::delq()
{ int data;
if(front==-1)
{
cout<<"\n Queue is
empty. ";
return
NULL ;
}
data=a[front];
if(front==rear)
front=rear=-1;
else
if(front==max-1)
front=0;
else
front++;
return
data;
}
void queue::display()
{ cout<<"(Front)";
int
i=front;
if(i!=-1)
{
while(1)
{ cout<<a[i]<<"
";
if(i==rear)
break;
if(i==max-1)
i=0;
else
i++;
}
}
cout<<"(Rear)";
}
int queue::count(void)
{ int count=0;
int
i=front;
if(i!=-1)
{
while(1)
{
count++;
if(i==rear)
break;
if(i==max-1)
i=0;
else
i++;
}
}
return
count;
}
void main()
{ int c,num; char ch;
queue
q;
while(1)
{
clrscr();
cout<<"\n
Perform the following Queue operations. ";
cout<<"\n
--------------------------------------- ";
cout<<"\n
1.Insert elements. ";
cout<<"\n
2.Delete elements. ";
cout<<"\n
3.Display full queue content. ";
cout<<"\n
4.Exit from program. ";
do
{ cout<<"\n Select your
Choice(1:4) : ";
cin>>c;
}
while((c<1)||(c>4));
clrscr();
switch(c)
{
case 1 :
do
{ cout<<"\n
Queue currently has "<<q.count()<<" elements. ";
cout<<"\n Enter the new
element";
cin>>num;
q.addq(num);
cout<<" Add More(Y/N) :
";
cin>>ch;
}
while((ch=='y')||(ch=='Y'));
break;
case
2 :
int num;
do
{ cout<<"\n
Queue currently has "<<q.count()<<" elements. ";
if(num==q.delq()!=NULL)
cout<<num <<" element is
deleted ";
cout<<"\n Current Queue is
";
q.display();
cout<<"\n Delete more(Y/N):
";
cin>>ch;
}
while((ch=='y')||(ch=='Y'));
break;
case 3 :
cout<<"\n
Queue Currently has "<<q.count()<<" elements as shown
below. ";
q.display();
break;
case 4 :
exit(1);
break;
}
cout<<"\n
Press Any Key To Continue...";
getch();
}
}
No comments:
Post a Comment