সারি হল ফার্স্ট ইন ফার্স্ট আউট ডেটা স্ট্রাকচার। গ্রাফ ট্রাভার্সাল অ্যালগরিদম ব্রেডথ ফার্স্ট সার্চ ইত্যাদির জন্য সারিটি বিভিন্ন এলাকায় ব্যবহৃত হয়। সারিতে কিছু আদিম ক্রিয়াকলাপ রয়েছে। এখানে আমরা সারির সেই ক্রিয়াকলাপগুলি দেখব, এবং সারি ADT ব্যবহার করে একটি উদাহরণ দেখব।
ADT (বিমূর্ত ডেটাটাইপ) হল বিশেষ ধরনের ডেটাটাইপ, যার আচরণ মানগুলির একটি সেট এবং ক্রিয়াকলাপের সেট দ্বারা সংজ্ঞায়িত করা হয়। কীওয়ার্ড "বিমূর্ত" ব্যবহার করা হয় কারণ আমরা এই ডেটাটাইপগুলি ব্যবহার করতে পারি, আমরা বিভিন্ন অপারেশন করতে পারি। কিন্তু সেই অপারেশনগুলি কীভাবে কাজ করছে যা ব্যবহারকারীর কাছ থেকে সম্পূর্ণ লুকানো। ADT আদিম ডেটাটাইপ দিয়ে তৈরি, কিন্তু অপারেশন লজিক লুকানো থাকে।
এগুলি কিউ ADT-এর কয়েকটি অপারেশন বা ফাংশন।
- isFull(), এটি সারি পূর্ণ কিনা তা পরীক্ষা করতে ব্যবহৃত হয়
- isEmpry(), এটি সারি খালি আছে কিনা তা পরীক্ষা করতে ব্যবহৃত হয়
- এনকিউ(x), এটি সারির শেষে x কে ধাক্কা দিতে ব্যবহৃত হয়
- delete(), এটি এর সামনের প্রান্ত থেকে একটি উপাদান মুছে ফেলতে ব্যবহৃত হয়
- front(), এটি সারির সবচেয়ে সামনের উপাদান পেতে ব্যবহৃত হয়
- size(), এই ফাংশনটি সারিতে উপস্থিত উপাদানের সংখ্যা পেতে ব্যবহৃত হয়
উদাহরণ
#include<iostream> #include<queue> using namespace std; main(){ queue<int> que; if(que.empty()){ cout << "Queue is empty" << endl; } else { cout << "Queue is not empty" << endl; } //insert elements into queue que.push(10); que.push(20); que.push(30); que.push(40); que.push(50); cout << "Size of the queue: " << que.size() << endl; //delete and dispay elements while(!que.empty()) { int item = que.front(); // read element from first position que.pop(); cout << item << " "; } }
আউটপুট
Queue is empty Size of the queue: 5 10 20 30 40 50