#include<iostream>
using namespace std;
#define SIZE 5
class dequeue
{
int a[10],front,rear;
public:
dequeue();
void add_at_beg(int);
void add_at_end(int);
void delete_fr_front();
void delete_fr_rear();
void display();
};
dequeue::dequeue()
{
front=-1;
rear=-1;
}
void dequeue::add_at_end(int item)
{
if(rear>=SIZE-1)
{
cout<<"\n insertion is not posibble,overflow!!!!";
}
else
{
if(front==-1)
{
front++;
rear++;
}
else
{
rear=rear+1;
}
a[rear]=item;
cout<<"\nInserted item is"<<a[rear];
}
}
void dequeue::add_at_beg(int item)
{
if(front==-1)
{
front=0;
a[++rear]=item;
cout<<"\n inserted element is"<<item;
}
else if(front!=0)
{
a[--front]=item;
cout<<"\n inserted element is"<<item;
}
else
{
cout<<"\n insertion is not posibble,overflow!!!";
}
}
void dequeue::display()
{
if(front==-1)
{
cout<<"Dequeue is empty";
}
else
{
for(int i=front;i<=rear;i++)
{
cout<<a[i]<<" ";
}
}
}
void dequeue::delete_fr_front()
{
if(front==-1)
{
cout<<"deletion is not possible::dequeue is empty";
return;
}
else
{
cout<<"the deleted element is"<<a[front];
if(front==rear)
{
front=rear=-1;
return;
}
else
front=front+1;
}
}
void dequeue::delete_fr_rear()
{
if(front==-1)
{
cout<<"deletion is not possible::dequeue is empty";
return;
}
else
{
cout<<"the deleted element is"<<a[rear];
if(front==rear)
{
front=rear=-1;
}
else
rear=rear-1;
}
}
int main()
{
int c,item;
dequeue d1;
do
{
cout<<"\n\n***DEQUEUE OPERATION***\n";
cout<<"\n 1_insert at beginning";
cout<<"\n 2_insert at end";
cout<<"\n 3_display";
cout<<"\n 4_deletion from front";
cout<<"\n 5_deletion from rear";
cout<<"\n 6_exit";
cout<<"\n enter your choice";
cin>>c;
switch(c)
{
case 1:cout<<"enter the element to be inserted";
cin>>item;
d1.add_at_beg(item);
break;
case 2:cout<<"enter the element to be inserted";
cin>>item;
d1.add_at_end(item);
break;
case 3:d1.display();
break;
case 4:d1.delete_fr_front();
break;
case 5:d1.delete_fr_rear();
break;
case 6:exit(1);
break;
csdefault:cout<<"invalid choice";
break;
}
}
while(c!=7);
}
OUTPUT:
***DEQUEUE OPERATION*** 1_insert at beginning 2_insert at end 3_display 4_deletion from front 5_deletion from rear 6_exit enter your choice1 enter the element to be inserted10 inserted element is10 ***DEQUEUE OPERATION*** 1_insert at beginning 2_insert at end 3_display 4_deletion from front 5_deletion from rear 6_exit enter your choice1 enter the element to be inserted20 insertion is not posibble,overflow!!! ***DEQUEUE OPERATION*** 1_insert at beginning 2_insert at end 3_display 4_deletion from front 5_deletion from rear 6_exit enter your choice2 enter the element to be inserted20 Inserted item is20 ***DEQUEUE OPERATION*** 1_insert at beginning 2_insert at end 3_display 4_deletion from front 5_deletion from rear 6_exit enter your choice3 10 20 ***DEQUEUE OPERATION*** 1_insert at beginning 2_insert at end 3_display 4_deletion from front 5_deletion from rear 6_exit enter your choice2 enter the element to be inserted30 Inserted item is30 ***DEQUEUE OPERATION*** 1_insert at beginning 2_insert at end 3_display 4_deletion from front 5_deletion from rear 6_exit enter your choice3 10 20 30 ***DEQUEUE OPERATION*** 1_insert at beginning 2_insert at end 3_display 4_deletion from front 5_deletion from rear 6_exit enter your choice4 the deleted element is10 ***DEQUEUE OPERATION*** 1_insert at beginning 2_insert at end 3_display 4_deletion from front 5_deletion from rear 6_exit enter your choice3 20 30 ***DEQUEUE OPERATION*** 1_insert at beginning 2_insert at end 3_display 4_deletion from front 5_deletion from rear 6_exit enter your choice5 the deleted element is30 ***DEQUEUE OPERATION*** 1_insert at beginning 2_insert at end 3_display 4_deletion from front 5_deletion from rear 6_exit enter your choice3 20 ***DEQUEUE OPERATION*** 1_insert at beginning 2_insert at end 3_display 4_deletion from front 5_deletion from rear 6_exit enter your choice