সার্কুলার কিউ হলো একটি কিউ যেখানে লাস্ট পজিশন ফার্স্ট পজিশনের সাথে সংযুক্ত, ফলে স্পেসের সর্বোত্তম ব্যবহার হয়। FIFO নীতি মেনে চলে।
উদাহরণ কোড
#include <iostream>
using namespace std;
int cqueue[5], front = -1, rear = -1, n = 5;
void insertCQ(int val){
if((front==0 && rear==n-1) || (front==rear+1)){
cout << "Queue Overflow\n"; return;
}
if(front==-1){ front=0; rear=0; }
else if(rear==n-1) rear=0; else rear++;
cqueue[rear] = val;
}
void deleteCQ(){
if(front==-1){ cout << "Queue Underflow\n"; return; }
cout << "Deleted: " << cqueue[front] << endl;
if(front==rear){ front=-1; rear=-1; }
else if(front==n-1) front=0; else front++;
}
void displayCQ(){
int f=front, r=rear;
if(front==-1){ cout << "Empty\n"; return; }
cout << "Elements: ";
if(f<=r){ while(f<=r) cout << cqueue[f++] << " "; }
else { while(f<=n-1) cout << cqueue[f++] << " "; f=0; while(f<=r) cout << cqueue[f++] << " "; }
cout << endl;
}
int main(){
int ch, val;
do{
cout << "1)Insert 2)Delete 3)Display 4)Exit\nChoice: "; cin >> ch;
switch(ch){
case 1: cout << "Value: "; cin >> val; insertCQ(val); break;
case 2: deleteCQ(); break;
case 3: displayCQ(); break;
case 4: cout << "Exit\n"; break;
default: cout << "Invalid\n";
}
} while(ch!=4);
return 0;
}
আউটপুট (নমুনা)
1)Insert 2)Delete 3)Display 4)Exit Enter choice: 1 Input: 10 ... 50 Queue elements: 10 20 30 40 50 Deleted: 10, 20 Queue: 30 40 50 Exit