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