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