ধরুন আমরা একটি সারি ব্যবহার করে একটি স্ট্যাক বাস্তবায়ন করতে চাই। স্ট্যাকের জন্য আমাদের এই পদ্ধতিগুলিকে সংজ্ঞায়িত করতে হবে।
-
push(x) - স্ট্যাকের উপর x চাপুন।
-
pop() - স্ট্যাক থেকে শীর্ষ উপাদান মুছুন এবং ফেরত দিন
-
top() - স্ট্যাক থেকে উপরের উপাদানটি ফেরত দিন।
-
empty() - স্ট্যাক খালি হোক বা না হোক ফেরত দিন।
সুতরাং, আমরা যদি ফাংশনগুলিকে push(10), push(20) বলি, তারপর কল করি pop(), pop(), তাহলে আউটপুট হবে 20, 10
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
একটি deque q
সংজ্ঞায়িত করুন -
একটি ফাংশন push() সংজ্ঞায়িত করুন, এটি x,
লাগবে -
q
এর শুরুতে x সন্নিবেশ করান -
একটি ফাংশন pop()
সংজ্ঞায়িত করুন -
k :=q
এর প্রথম উপাদান -
q
থেকে সামনের উপাদান মুছুন -
k
ফেরত দিন -
একটি ফাংশন টপ()
সংজ্ঞায়িত করুন -
q
এর প্রথম উপাদান ফেরত দিন -
একটি ফাংশন খালি()
সংজ্ঞায়িত করুন -
যদি q খালি হয়, তাহলে −
-
প্রত্যাবর্তন সত্য
-
-
অন্যথায়
-
ফেরত মিথ্যা
-
উদাহরণ
আরো ভালোভাবে বোঝার জন্য নিচের বাস্তবায়নটি দেখি -
#include <bits/stdc++.h> using namespace std; class MyStack { private: deque<int> q; public: void push(int x){ q.push_front(x); } int pop(){ int k = q.front(); q.pop_front(); return k; } int top(){ return q.front(); } bool empty(){ if (q.empty()) return true; else return false; } }; main(){ MyStack ob; ob.push(10); ob.push(20); cout << (ob.pop()) << endl; cout << (ob.pop()) << endl; }
ইনপুট
push(10),push(20),pop(),pop()
আউটপুট
20 10