Program to Implement Circular Queue in Data Structures (C plus plus)
In this tutorial, we will learn about Program to Implement Circular Queue in Data Structures (C plus plus).
/*C++ Program to Implement Circular Queue*/ #include <iostream> #define MAX 5 using namespace std; class circular_queue { private: int *cqueue_arr; int front, rear; public: circular_queue() { cqueue_arr = new int [MAX]; rear = front = -1; } /*Insert into Circular Queue*/ void insert(int item) { if ((front == 0 && rear == MAX-1) || (front == rear+1)) { cout<<"Queue overflowed "<<endl; return; } if (front == -1) { front = 0; rear = 0; } else { if (rear == MAX - 1) rear = 0; else rear = rear + 1; } cqueue_arr[rear] = item ; } /*Delete from Circular Queue*/ void delet() { if (front == -1) { cout<<"Queue underflowed "<<endl; return; } cout<<"Value removed from queue is : "<<cqueue_arr[front]<<endl; if (front == rear) { front = -1; rear = -1; } else { if (front == MAX - 1) front = 0; else front = front + 1; } } /*Show Circular Queue*/ void show() { int front_pos = front, rear_pos = rear; if (front == -1) { cout<<endl<<"Empty queue"<<endl; return; } cout<<endl<<"Values in queue are :"<<endl; if (front_pos <= rear_pos) { while (front_pos <= rear_pos) { cout<<cqueue_arr[front_pos]<<" "; front_pos++; } } else { while (front_pos <= MAX - 1) { cout<<cqueue_arr[front_pos]<<" "; front_pos++; } front_pos = 0; while (front_pos <= rear_pos) { cout<<cqueue_arr[front_pos]<<" "; front_pos++; } } cout<<endl; } }; int main() { int ch, value; circular_queue cq; do { cout<<"1. Insert into the queue "<<endl; cout<<"2. Delete from the queue "<<endl ; cout<<"3. Display queue "<<endl; cout<<"4. Quit "<<endl; cout<<"Please enter your choice : "; cin>>ch; switch(ch) { case 1: cout<<"Please enter the value for insertion in queue : "; cin>>value; cq.insert(value); break; case 2: cq.delet(); break; case 3: cq.show(); break; case 4: break; default: cout<<"Please enter a valid option"<<endl; } } while(ch != 4); return 0; }
Output: