Circular Queue in DSA C++
by DataFlair Team
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;
}
Tags: circular queuecircular queue in data structurescircular queue in dsa c++dsa c++dsa c++ circular queuedsa c++ practicaldsa c++ programdsa c++ program on circular queue
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.