কম্পিউটার টিউটোরিয়াল

সি++-এ সার্কুলার কিউ ডেটা স্ট্রাকচার


সার্কুলার কিউ হলো একটি কিউ যেখানে লাস্ট পজিশন ফার্স্ট পজিশনের সাথে সংযুক্ত, ফলে স্পেসের সর্বোত্তম ব্যবহার হয়। 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

  1. জাভাস্ক্রিপ্টে কিউ (Queue) ডেটা স্ট্রাকচার: কনসেপ্ট ও বেসিক

  2. C ভাষায় লিনিয়ার ডেটা স্ট্রাকচার কিউ (Queue) ব্যাখ্যা

  3. C++ স্ট্রিম ক্লাসের কাঠামো

  4. হাফ-এজ ডেটা স্ট্রাকচার