Circular Queue in DSA C++

Program 1

// Linear Queue Implementation 
#include<iostream>
#define MAXSIZE 10
using namespace std;
class CircularQueue
{
    private:
    int cqueue[MAXSIZE];
    int rear,front;

    public:
    CircularQueue()
    {
          rear=front=-1;
    }
    void insert_element();
    void delete_element();
    void display_element();
};
void CircularQueue::insert_element()
{
       int n;
         if((rear+1)%MAXSIZE==front)
         cout<<"\nQueue is overflow";
       else
       {
            cout<<"\nEnter a element: ";
            cin>>n;
            if(front==-1 && rear==-1)
                    front=rear=0;
            else
             rear=(rear+1)%MAXSIZE;

             cqueue[rear]=n;             
       }  
} 

 void CircularQueue::delete_element()
{
     if(front==-1 && rear==-1)
      cout<<"\n Queue is empty";
      else
      {
           int n;
           n=cqueue[front];
           if(front==rear)
             front=rear=-1;
           else
             front=(front+1)%MAXSIZE;
         cout<<"\n Deleted element is : "<<n;      
      }


}  
void CircularQueue::display_element()
{
    if(front==-1 && rear==-1)
      cout<<"\n Queue is empty";
    else
   {
      cout<<"\n Elements of Queue: ";
      int i;
       for(i=front;i!=rear;i=(i+1)%MAXSIZE)
       { 
         cout<<cqueue[i]<<"      ";
       }
          cout<<cqueue[i]<<"      ";
   }
}  

int main()
{
    system("cls");
    int choice;
    CircularQueue mycq;
    do
  {  
    cout<<"\n ---------------Circular Queue Menu--------------------";
    cout<<"\n 1. Insert ";
    cout<<"\n 2. Delete ";
    cout<<"\n 3. Display ";
    cout<<"\n 4. Exit ";
    cout<<"\n-------------------------------------------------------";
    cout<<"\n Enter your choice: ";
    cin>>choice;
    switch(choice)
    {
       case 1: mycq.insert_element(); break; 
       case 2: mycq.delete_element(); break; 
       case 3: mycq.display_element(); break; 
       case 4:break;
       default:cout<<"Invalid choice";
    }
  }while(choice!=4);

    return 0;
    
}

 

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 *