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

সি++-এ ডিকিউ (Dequeue) ও প্রায়োরিটি কিউ (Priority Queue)


কিউর দুটি প্রধান ভেরিয়েশন: ডিকিউ (Double Ended Queue) ও প্রায়োরিটি কিউ।

ডিকিউ (Deque)

ডিকিউতে দুটি এন্ড থেকে ইনসার্ট/ডিলিট করা যায়। STL-এ `deque` ক্লাস ব্যবহার করা হয়।

উদাহরণ (Deque)

#include <iostream> 
#include <deque> 
using namespace std; 

void printDeque(deque q){
    for(auto it = q.begin(); it != q.end(); ++it) cout << *it << " ";
    cout << endl;
}

int main(){
    deque q;
    q.push_back(10); q.push_front(20); q.push_back(30); q.push_front(15);
    cout << "Deque: "; printDeque(q);
    cout << "Size: " << q.size() << endl;
    cout << "At pos 2: " << q.at(2) << endl;
    cout << "Front: " << q.front() << ", Back: " << q.back() << endl;
    q.pop_front(); cout << "After pop_front: "; printDeque(q);
    q.pop_back(); cout << "After pop_back: "; printDeque(q);
    return 0;
}

আউটপুট

Currently que is holding: 15 20 10 30
Size: 4
Element at pos 2: 10
Front: 15, Back: 30
After pop_front: 20 10 30
After pop_back: 20 10

প্রায়োরিটি কিউ (Priority Queue)

প্রতিটি এলিমেন্টের প্রায়োরিটি থাকে, হাই প্রায়োরিটি প্রথমে বের হয়। STL-এ `priority_queue`।

উদাহরণ (Priority Queue)

#include <iostream> 
#include <queue> 
using namespace std; 

void printPQ(priority_queue q){
    while(!q.empty()){ cout << q.top() << " "; q.pop(); }
    cout << endl;
}

int main(){
    priority_queue pq;
    pq.push(10); pq.push(20); pq.push(30); pq.push(5); pq.push(1);
    cout << "PQ: "; printPQ(pq);
    cout << "Size: " << pq.size() << endl;
    cout << "Top: " << pq.top() << endl;
    pq.pop(); cout << "After pop: "; printPQ(pq);
    pq.pop(); cout << "After pop: "; printPQ(pq);
    return 0;
}

আউটপুট

Currently que is holding: 30 20 10 5 1
Size: 5
Top: 30
After pop: 20 10 5 1
After pop: 10 5 1

  1. C/C++-তে প্রায়োরিটি কিউ (Priority Queue) পরিচিতি

  2. C++ STL-এ প্রায়োরিটি কিউ (Priority Queue)

  3. ডাবলি লিংকড লিস্ট দিয়ে প্রায়োরিটি কিউ বাস্তবায়ন C++-তে

  4. C++ প্রোগ্রাম: প্রায়োরিটি কিউ ইমপ্লিমেন্টেশন