People Waiting In Line

আমরা বাস্তব জীবনে যেমন সারিতে দাড়াই, কিউ কাজ করে ঠিক সেভাবেই। পার্থক্য হল, বাস্তব জীবনে আমরা আমাদের বন্ধু আসলে সারির মাঝখানে নিয়ে নিতে পারি, কিউ-তে সেটা করা যায় না! 😛 কিউ ডাটা স্ট্রাকচারের অনেক ব্যবহারের মধ্যে একটা বহুল পরিচিত ব্যবহার হল বিএফএস (ব্রেডথ ফার্স্ট সার্চ)-এ। এছাড়াও অনেক প্রবলেমই কিউ ব্যবহার করে খুব সহজেই সলভ করে ফেলা যায়।

এটা কাজ করে First In First Out নীতিতে। অর্থাৎ, যে সবার আগে আসছে, তার কাজ সবার আগে। কিউ-তে একটা নতুন ভ্যারিয়েবল দিলে সেটা গিয়ে যুক্ত হয় সবগুলোর পেছনে!

কিউ ডিক্লারেশন

বাকিগুলোর মত কিউ-ও একইভাবেই ডিক্লেয়ার করতে হয়।

#include <iostream>
#include <queue>
using namespace std;
int main() {
    queue <int> myQ;
    return 0;
}

স্ট্যাকের মত কিউ-তেও ভ্যারিয়েবল পাস করতে হয় myQ.push(variable) দ্বারা

আমরা ইউজার থেকে ১০ টা ইনপুট নিয়ে কিউ তৈরির জন্য লিখতে পারিঃ

#include <iostream>
#include <queue>
using namespace std;
int main() {
    queue <int> myQ;
    int i, input;
    for (i=0; i<10; i++) {
        cin >> input;
        myQ.push(input);
    }
    return 0;
}

পার্থক্য হল স্ট্যাকে সবার শেষে যেটা দিব, সেটা থাকবে সবার উপরে। আর কিউ-তে সবার শেষে যেটা দিব, সেটা যাবে সবার পেছনে!

কিউ-তে কয়টা উপাদান আছে দেখা যায় myQ.size() দিয়ে

#include <iostream>
#include <queue>
using namespace std;
int main() {
    queue <int> myQ;
    int i, input;
    for (i=0; i<10; i++) {
        cin >> input;
        myQ.push(input);
    }
    cout << "Size of the Queue: ";
    cout << myQ.size();
    return 0;
}

কিউ খালি কি না সেটা চেক করতে হয় myQ.empty() দিয়ে

#include <iostream>
#include <queue>
using namespace std;
int main() {
    queue <int> myQ;
    
    if (myQ.empty()) {
        cout << "Empty Queue\n";
    }
    return 0;
}

সবার সামনের উপাদানটা এক্সেস করা যায় myQ.front() দিয়ে

#include <iostream>
#include <queue>
using namespace std;
int main() {
    queue <int> myQ;
    int i, input;
    for (i=0; i<10; i++) {
        cin >> input;
        myQ.push(input);
    }
    cout << "Shobar shamne: ";
    cout << myQ.front();
    return 0;
}

এছাড়া সবার পেছনের উপাদানটা এক্সেস করা যায় myQ.back() দিয়ে

#include <iostream>
#include <queue>
using namespace std;
int main() {
    queue <int> myQ;
    int i, input;
    for (i=0; i<10; i++) {
        cin >> input;
        myQ.push(input);
    }
    cout << "Shobar pechone: ";
    cout << myQ.back();
    return 0;
}

কিউ-এর সবার সামনের উপাদান বের করে দিতে হয় myQ.pop() দিয়ে

নিচের কোডটাতে ১০ টা ইন্টিজার ইনপুট দিয়ে রান করে দেখ। কিউ সম্পর্কে আরও ভাল আইডিয়া পাবে।

#include <iostream>
#include <queue>
using namespace std;
int main() {
    queue <int> myQ;
    int i, input;
    for (i=0; i<10; i++) {
        cin >> input;
        myQ.push(input);
    }
    cout << "This queue has the following integers:\n";
    for (i=0; i<10; i++) {
        cout << myQ.front() << endl;
        myQ.pop();
    }
    if (myQ.empty()) cout << "The queue is now empty.\n";
    return 0;
}

Muntasir Wahed

Muntasir Wahed

System Administrator at স্বশিক্ষা.com
Jack of all trades, master of none.
Muntasir Wahed
Muntasir Wahed