#include<stdio.h>
#include<conio.h>
void main()
{
int deque[5], ch, i, value, front=-1, rear=-1;
clrscr();
do
{
printf("\nPress 1. insert at the beginning.");
printf("\nPress 2. insert at the end.");
printf("\nPress 3. delete from the beginning.");
printf("\nPress 4. delete from the end.");
printf("\nPress 5. display data.");
printf("\nPress 6. exit from the output screen.");
printf("\nEnter your choice:\n");
scanf("%d",&ch);
switch(ch)
{
case 1:
if(front==0 && rear==4)
{
printf("\nDeque is full.");
}
else
{
printf("\nEnter the data to be added at the beginning:\n");
scanf("%d",&value);
if(front==-1)
{
front=rear=0;
deque[front]=value;
}
/*If deque is full from the front only*/
else if(front==0 && rear!=4)
{
/*Shift the elements from 1 position to its right.*/
for(i=rear;i>=front;i--)
{
deque[i+1]=deque[i];
}
rear++;
deque[front]=value;
}
/*If deque is empty from the front.*/
else if(front>0)
{
front--;
deque[front]=value;
}
printf("\nNumber inserted at the beginning is %d",deque[front]);
}
break;
case 2:
if(front==0 && rear==4)
{
printf("\nDeque is full.");
}
else
{
printf("\nEnter the data to be added at the end:\n");
scanf("%d",&value);
if(rear==-1)
{
front=rear=0;
deque[rear]=value;
}
/*If deque is full from the end only*/
else if(front!=0 && rear==4)
{
/*Shift the elements from 1 position to its left.*/
for(i=front;i<=rear;i++)
{
deque[i-1]=deque[i];
}
front--;
deque[rear]=value;
}
/*If deque is empty from the end.*/
else if(rear<4)
{
rear++;
deque[rear]=value;
}
printf("\nNumber inserted at the end is %d",deque[rear]);
}
break;
case 3:
if(front==-1)
{
printf("Deque is empty.");
}
else
{
if(front==rear)
{
value=deque[front];
front=rear=-1;
}
else
{
value=deque[front];
front++;
}
}
printf("\nNumber deleted from the beginning is %d",value);
break;
case 4:
if(rear==-1)
{
printf("Deque is empty.");
}
else
{
if(front==rear)
{
value=deque[rear];
front=rear=-1;
}
else
{
value=deque[rear];
rear--;
}
}
printf("\nNumber deleted from the end is %d",value);
break;
case 5:
if(front==-1 || rear==-1)
{
printf("Deque is empty.");
}
else
{
for(i=front;i<=rear;i++)
{
printf("%5d",deque[i]);
}
}
break;
case 6:
exit(0);
default:
printf("\nYou have entered wrong choice!.");
}
}while(ch!=6);
getch();
}