আমরা বাস্তব জীবনে যেমন সারিতে দাড়াই, কিউ কাজ করে ঠিক সেভাবেই। পার্থক্য হল, বাস্তব জীবনে আমরা আমাদের বন্ধু আসলে সারির মাঝখানে নিয়ে নিতে পারি, কিউ-তে সেটা করা যায় না! 😛 কিউ ডাটা স্ট্রাকচারের অনেক ব্যবহারের মধ্যে একটা বহুল পরিচিত ব্যবহার হল বিএফএস (ব্রেডথ ফার্স্ট সার্চ)-এ। এছাড়াও অনেক প্রবলেমই কিউ ব্যবহার করে খুব সহজেই সলভ করে ফেলা যায়।
এটা কাজ করে 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; }
অসংখ্য ধন্যবাদ লেখাটির জন্য!
প্রথম উদহারণটিতে queue এর জায়গায় vector ইনক্লুড করা হয়েছে। আশা করি, ঠিক করে নেবেন।
অসংখ্য ধন্যবাদ। ঠিক করে দেওয়া হয়েছে!