Deque in DSA C++

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];
   }
}

 

courses
Image

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.

Leave a Reply

Your email address will not be published. Required fields are marked *