Deque in DSA C++
by DataFlair Team
Program 1
#include<iostream>
#include<stdio.h>
#define clrscr() system("cls")
using namespace std;
#define MAXSIZE 10
int dqueue[MAXSIZE];
int front=-1,rear=-1;
void insertFront();
void insertRear();
void deleteFront();
void deleteRear();
void display();
int main()
{
int choice;
do
{
cout<<"\n-----------------DQueue Menu---------------------\n";
cout<<"\n 1. Insert Front";
cout<<"\n 2. Insert Rear";
cout<<"\n 3. Delete Front";
cout<<"\n 4. Delete Rear";
cout<<"\n 5. Display";
cout<<"\n 6. Exit";
cout<<"\n-------------------------------------------------------\n";
cout<<"\nEnter your choice: ";
cin>>choice;
switch(choice)
{
case 1:insertFront();break;
case 2:insertRear();break;
case 3:deleteFront();break;
case 4:deleteRear();break;
case 5:display();break;
case 6:break;
}
}while(choice!=6);
return 0;
}
void insertFront()
{
int n;
if((front==0 && rear==MAXSIZE-1) ||(front==rear+1))
cout<<"\n Dqueue is overflow";
else
{
cout<<"\n Enter an element for insert front";
cin>>n;
if(front==-1 && rear==-1)
{
front=rear=0;
dqueue[front]=n;
}
else if(front==0)
{
front=MAXSIZE-1;
dqueue[front]=n;
}
else
{
front--;
dqueue[front]=n;
}
}
}
void insertRear()
{
int n;
if((front==0 && rear==MAXSIZE-1) ||(front==rear+1))
cout<<"\n Dqueue is overflow";
else
{
cout<<"\n Enter an element for insert rear";
cin>>n;
if(front==-1 && rear==-1)
{
front=rear=0;
dqueue[rear]=n;
}
else if(rear==MAXSIZE-1)
{
rear=0;
dqueue[rear]=n;
}
else
{
rear++;
dqueue[rear]=n;
}
}
}
void deleteFront()
{
if(front==-1 && rear==-1)
cout<<"Queue is Empty";
else
{
if(front==rear)
{
cout<<"\n Deleted element is: "<<dqueue[front];
front=rear=-1;
}
else
if(front==MAXSIZE-1)
{
cout<<"\n Deleted element is: "<<dqueue[front];
front=0;
}
else
{
cout<<"\n Deleted element is: "<<dqueue[front];
front++;
}
}
}
void deleteRear()
{
if(front==-1 && rear==-1)
cout<<"Queue is Empty";
else
{
if(front==rear)
front=rear=-1;
else
{
if(rear==0)
{
cout<<"\n Delete element is : "<<dqueue[rear];
rear=MAXSIZE-1;
}
else
{
cout<<"\n Delete element is : "<<dqueue[rear];
rear--;
}
}
}
}
void display()
{
if(front==-1 && rear==-1)
{
cout<<"Queue is Empty";
}
else
{
int i;
i=front;
while(i!=rear)
{
cout<<" "<<dqueue[i];
i=(i+1)%MAXSIZE;
}
cout<<" "<<dqueue[rear];
}
}
Tags: c++ dequedequedeque in c++deque in dsa c++dsa c++dsa c++ dequedsa c++ practicaldsa c++ programdsa c++ program on deque
DataFlair Team
DataFlair Team provides high-impact content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. We make complex concepts easy to grasp, helping learners of all levels succeed in their tech careers.