You are on page 1of 4

// Template Program for Circular Queue using array Representaion

#define size 10
#include<iostream.h>
template<class T>
class CQueue
{
private:
T Q[size];
int f,r;
public:
CQueue();
~CQueue();
int isEmpty();
int isFull();
T First();
T Last();
void insert(T x);
T del();
void display();
};
template<class T>
CQueue<T>::CQueue()
{
f=0;
r=-1;
}
template<class T>
CQueue<T>::~CQueue()
{
delete[]Q;
}
template<class T>
int CQueue<T>::isEmpty()
{
if(r==-1)
return(1);
else
return(0);
}
template<class T>
int CQueue<T>::isFull()
{
if (((r+1)%size==f)&&(r!=-1))
return(1);
else
return(0);
}
template<class T>
T CQueue<T>::First()
{

return(Q[f]);
}
template<class T>
T CQueue<T>::Last()
{
return(Q[r]);
}
template<class T>
void CQueue<T>::insert(T x)
{
if(isFull()==1)
cout<<"Circular Queue is full. Insertion is not possible.\n";
else if(r==size-1)
{
r=0;
Q[r]=x;
cout<<x<<"is inserted.\n";
}
else
{
r++;
Q[r]=x;
cout<<x<<"is inserted.\n";
}
}
template<class T>
T CQueue<T>::del()
{
T x;
if(isEmpty()==1)
return(0);
else if (f==r)
{
x=Q[f];
f=0;
r=-1;
return(x);
}
else
{
x=Q[f];
if(f==size-1)
f=0;
else
f++;
return(x);
}
}
template<class T>
void CQueue<T>::display()
{
if(isEmpty()==1)
cout<<"Queue is Empty.\n";

else if(f==r)
{
cout<<"Circular Queue has only one element.\n";
cout<<Q[f];
}
else if(f<r)
{
cout<<"Circular Queue contents are as follows.\n";
for(int i=0;i<=f-1;i++)
cout<<"Empty.\t";
for(i=f;i<=r;i++)
cout<<Q[i]<<"\t";
for(i=r+1;i<=size-1;i++)
cout<<"Empty.\t";
cout<<"\n";
}
else
{
cout<<"The Circular Queue contents are.\n";
for(int i=0;i<=r;i++)
cout<<Q[i]<<"\t";
for(i=r+1;i<=f-1;i++)
cout<<"Empty.\t";
for(i=f;i<=size-1;i++)
cout<<Q[i]<<"\t";
cout<<"\n";
}
}
void menu()
{
cout<<"1.insert.\n";
cout<<"2.Delete.\n";
cout<<"3.Display the list.\n";
cout<<"4.Display the First element.\n";
cout<<"5.Display the last element.\n";
}
void main()
{
CQueue <int> qu;
int ch,x,ans;
void menu();
menu();
cout<<"Enter your Choice.\n";
cin>>ch;
while(ch<6)
{
switch(ch)
{
case 1:
cout<<"Enter the element to be i
nserted.\n";
cin>>x;
qu.insert(x);
break;
case 2:
ans=qu.del();

if(ans==0)
cout<<"Queue is Empty.De
letion is not possible.\n";
else
cout<<"Deletion is successful.T
he deleted element is "<<ans<<endl;
break;
case 3:
qu.display();
break;
case 4:
cout<<"The first element is "<<q
u.First()<<endl;
break;
case 5:
cout<<"The last element is "<<qu
.Last()<<endl;
break;
}
menu();
cout<<"Enter your Choice.\n";
cin>>ch;
}
}

You might also like