বাস বা ট্রেনে ওঠার জন্য দীর্ঘ সারির সাথে আমরা সবাই পরিচিত। বাসে উঠার জন্য যে ব্যক্তি প্রথমে দাঁড়ান, তিনিই প্রথমে বাস ওঠার সুযোগ পান। এভাবে দ্বিতীয় জন, তৃতীয় জন, চতুর্থ জন বাসে ওঠেন। ঠিক এইভাবেই কিউ ডাটা স্ট্রাকচার কাজ করে। অনেক ইন্টারেস্টিং, তাই না ???
আমি এই পোষ্টে STL এর মাধ্যমে কিভাবে Queue ব্যবহার করতে হয় তা নিয়ে আলোচনা করব। Queue ডিক্লেয়ার করতে হয় এই ভাবে-
queue< data type > variable;
queue< int > q;
Queue ডিক্লেয়ার করা হল, এবার জানব Queue তে কিভাবে ডাটা Push করতে হয় বা Insert করতে হয়। Push কৃত ডাটা Queue এর পেছন দিয়ে প্রবেশ করে। উপরের q নামের কিউটিতে আমরা ডাটা পুশ করব।
q.push(10);q.push(50);
q.push(70);
কিউতে যেসব ডাটা থাকে, তার মধ্যে যেটি ফ্রন্টে থাকে সেটিই দরকার হয় বিভিন্ন অপারেশন এ। তাই ফ্রন্টে কোন ডাটা আছে তা আমাদের জানতে হবে। q.front() এভাবে আমরা q নামের কিউটির ফ্রন্টে কোন ডাটা আছে তা সহজেই জানতে পারি।
এবার আমরা Queue থেকে ডাটা Pop করব বা Remove করব। Queue থেকে ডাটা Pop করা যায় সামনে থেকে। যে ডাটাটি Queue তে সবার সামনে বা Front এ থাকবে সেটিই আগে Pop হবে। ডাটা Pop করবো এইভাবে - q.pop();
Queue এর ডাটা স্ট্রাকচার সাধারনত FIFO অর্থাৎ First In First Out মডেল Follow করে। ফলে যে ডাটাটি সবার আগে Push করা হয় সেটি সবার আগে Pop করা হয়।
Code:
এবার আমরা Queue থেকে ডাটা Pop করব বা Remove করব। Queue থেকে ডাটা Pop করা যায় সামনে থেকে। যে ডাটাটি Queue তে সবার সামনে বা Front এ থাকবে সেটিই আগে Pop হবে। ডাটা Pop করবো এইভাবে - q.pop();
Queue এর ডাটা স্ট্রাকচার সাধারনত FIFO অর্থাৎ First In First Out মডেল Follow করে। ফলে যে ডাটাটি সবার আগে Push করা হয় সেটি সবার আগে Pop করা হয়।
Code:
/* Queue */
#include<cstdio>
#include<queue>
using namespace std;
int main()
{
queue<int> q;
q.push(10);
q.push(50);
q.push(70);
while(!q.empty())
{
printf("%d ", q.front());
q.pop();
}
return 0;
}
No comments:
Post a Comment