#include<iostream.h>
#include<conio.h>
#define MAX 5;
class cqueue
{
int a[MAX],front,rear;
public :
cqueue()
{
front=rear=-1;
}
void insert(int );
int deletion();
void display();
};
void cqueue :: insert(int val)
{
if((front==0 && rear==MAX-1) || (rear+1==front))
cout<<" Circular Queue is Full
";
else
{
if(rear==MAX-1)
rear=0;
else
rear++;
a[rear]=val;
}
if(front==-1)
front=0;
}
int cqueue :: deletion()
{
int k;
if(front==-1)
cout<<"Circular Queue is Empty
";
else
{
k=a[front];
if(front==rear)
front=rear=-1;
else
{
if(front==MAX-1)
front=0;
else
front++;
}
}
return k;
}
void cqueue :: display()
{
int i;
if(front==-1)
cout<<"Circular Queue is Empty
";
else
{
if(rear < front)
{
for(i=front;i<=MAX-1;i++)
cout<<a[i]<<" ";
for(i=0;i<=rear;i++)
cout<<a[i]<<" ";
}
else
{
for(i=front;i<=rear;i++)
cout<<a[i]<<" ";
cout<<endl;
}
}
}
void main()
{
clrscr();
cqueue c1;
int ch,val;
char op;
do
{
clrscr();
cout<<"-----------Menu-------------";
cout<<"\n 1.Insertion \n 2.Deletion \n 3.Display \n4.Exit ";
cout<<"Enter Your Choice <1..4> ?";
cin>>ch;
switch(ch)
{
case 1 : cout<<"Enter Element to Insert ?";
cin>>val;
c1.insert(val);
break;
case 2 : val=c1.deletion();
cout<<"Deleted Element :"<<val<<endl;
break;
case 3 : c1.display();
break;
}
cout<<"Do you want to continue<Y/N> ?";
cin>>op;
}while(op=='Y' || op=='y');
getch();
}
I2luY2x1ZGU8aW9zdHJlYW0uaD4KI2luY2x1ZGU8Y29uaW8uaD4KI2RlZmluZSBNQVggNTsKCSAgY2xhc3MgY3F1ZXVlCgkgIHsKCQkgICBpbnQgYVtNQVhdLGZyb250LHJlYXI7CgkJcHVibGljIDoKCQkgICBjcXVldWUoKQoJCSAgIHsKCQkJIGZyb250PXJlYXI9LTE7CgkJICAgfQoJCSAgIHZvaWQgaW5zZXJ0KGludCApOwoJCSAgIGludCBkZWxldGlvbigpOwoJCSAgIHZvaWQgZGlzcGxheSgpOwoJICB9OwoKCSAgdm9pZCBjcXVldWUgOjogaW5zZXJ0KGludCB2YWwpCgkgIHsKCQkgaWYoKGZyb250PT0wICYmIHJlYXI9PU1BWC0xKSB8fCAocmVhcisxPT1mcm9udCkpCgkJCSAgY291dDw8IiBDaXJjdWxhciBRdWV1ZSBpcyBGdWxsCiI7CgkJIGVsc2UKCQkgewoJCSAgIGlmKHJlYXI9PU1BWC0xKQoJCQkgIHJlYXI9MDsKCQkgICBlbHNlCgkJCSByZWFyKys7CgkJICAgYVtyZWFyXT12YWw7CgkJIH0KCQkgaWYoZnJvbnQ9PS0xKQoJCSAgIGZyb250PTA7CgkgIH0KCSAgaW50IGNxdWV1ZSA6OiBkZWxldGlvbigpCgkgIHsKCQkgaW50IGs7CgkJIGlmKGZyb250PT0tMSkKCQkJY291dDw8IkNpcmN1bGFyIFF1ZXVlIGlzIEVtcHR5CiI7CgkJIGVsc2UKCQkgewoJCQlrPWFbZnJvbnRdOwoJCQlpZihmcm9udD09cmVhcikKCQkJICAgZnJvbnQ9cmVhcj0tMTsKCQkJZWxzZQoJCQl7CgkJCSAgIGlmKGZyb250PT1NQVgtMSkKCQkJCSAgZnJvbnQ9MDsKCQkJICAgZWxzZQoJCQkJICBmcm9udCsrOwoJCQl9CgkJIH0KCQkgcmV0dXJuIGs7CgkgIH0KCSAgdm9pZCBjcXVldWUgOjogZGlzcGxheSgpCgkgIHsKCQkgIGludCBpOwoJCSAgaWYoZnJvbnQ9PS0xKQoJCQkgY291dDw8IkNpcmN1bGFyIFF1ZXVlIGlzIEVtcHR5CiI7CgkJICBlbHNlCgkJICB7CgkJCSBpZihyZWFyIDwgZnJvbnQpCgkJCSB7CgkJCQlmb3IoaT1mcm9udDtpPD1NQVgtMTtpKyspCgkJCQkgICBjb3V0PDxhW2ldPDwiICAgIjsKCQkJCWZvcihpPTA7aTw9cmVhcjtpKyspCgkJCQkgICBjb3V0PDxhW2ldPDwiICAgIjsKCQkJIH0KCQkJIGVsc2UKCQkJIHsKCQkJCWZvcihpPWZyb250O2k8PXJlYXI7aSsrKQoJCQkJICAgY291dDw8YVtpXTw8IiAgICI7CgkJCQljb3V0PDxlbmRsOwoJCQkgfQoJCSAgfQoJICB9CgoJICB2b2lkIG1haW4oKQoJICB7CgljbHJzY3IoKTsJIAoJCWNxdWV1ZSBjMTsKCQkgaW50IGNoLHZhbDsKCQkgY2hhciBvcDsKCQkgZG8KCQkgewoJCSAgIGNscnNjcigpOwoJCSAgIGNvdXQ8PCItLS0tLS0tLS0tLU1lbnUtLS0tLS0tLS0tLS0tIjsKCQkgICBjb3V0PDwiXG4gMS5JbnNlcnRpb24gXG4gMi5EZWxldGlvbiBcbiAzLkRpc3BsYXkgXG40LkV4aXQgIjsKCQkgICBjb3V0PDwiRW50ZXIgWW91ciBDaG9pY2UgPDEuLjQ+ID8iOwoJCSAgIGNpbj4+Y2g7CgkJICAgc3dpdGNoKGNoKQoJCSAgIHsKCQkJICAgY2FzZSAxIDogY291dDw8IkVudGVyIEVsZW1lbnQgdG8gSW5zZXJ0ID8iOwoJCQkJCQljaW4+PnZhbDsKCQkJCQkJYzEuaW5zZXJ0KHZhbCk7CgkJCQkJCWJyZWFrOwoJCQkgICBjYXNlIDIgOiB2YWw9YzEuZGVsZXRpb24oKTsKCQkJCQkJY291dDw8IkRlbGV0ZWQgRWxlbWVudCA6Ijw8dmFsPDxlbmRsOwoJCQkJCQlicmVhazsKCQkJICAgY2FzZSAzIDogYzEuZGlzcGxheSgpOwoJCQkJCQlicmVhazsKCQkJfQoJCQljb3V0PDwiRG8geW91IHdhbnQgdG8gY29udGludWU8WS9OPiA/IjsKCQkJY2luPj5vcDsKCQkgIH13aGlsZShvcD09J1knIHx8IG9wPT0neScpOwoJCSAgIGdldGNoKCk7CgkJfQ==