मान लीजिए कि हम एक कतार का उपयोग करके एक स्टैक को लागू करना चाहते हैं। हमें स्टैक के लिए इन विधियों को परिभाषित करना होगा।
-
push(x) - x को स्टैक पर पुश करें।
-
पॉप () - स्टैक से शीर्ष तत्व को हटाएं और वापस करें
-
शीर्ष () - स्टैक से शीर्ष तत्व लौटाएं।
-
खाली () - वापस लौटें कि स्टैक खाली है या नहीं।
इसलिए, यदि हम फ़ंक्शन को पुश (10), पुश (20) कहते हैं, तो पॉप (), पॉप () कहते हैं, तो आउटपुट 20, 10
होगा।इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
एक डेक q को परिभाषित करें
-
फ़ंक्शन पुश () को परिभाषित करें, इसमें x लगेगा,
-
q की शुरुआत में x डालें
-
फ़ंक्शन पॉप को परिभाषित करें ()
-
k :=q का पहला तत्व
-
q से सामने वाला तत्व हटाएं
-
वापसी कश्मीर
-
फ़ंक्शन को परिभाषित करें top()
-
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