स्टैक रैखिक डेटा संरचनाएं हैं जो LIFO के सिद्धांत का पालन करती हैं। LIFO का मतलब लास्ट इन फर्स्ट आउट है, जिसका अर्थ है कि सबसे हाल ही में जोड़ा गया आइटम सबसे पहले निकाला जाने वाला आइटम है। इस डेटा संरचना को वास्तविक दुनिया के ढेर के समानता के रूप में स्टैक नाम दिया गया है, उदाहरण के लिए, कुकी जार में कुकीज़ का ढेर या बुकशेल्फ़ पर किताबों का ढेर। स्टैक में सम्मिलन और निष्कर्षण केवल एक छोर यानी स्टैक के शीर्ष पर किया जा सकता है। उदाहरण के लिए, यदि हम एक कुकी खाना चाहते हैं, तो हमें पहले सबसे ऊपर वाली कुकी मिलेगी और फिर दूसरी और इसी तरह।
यह पोस्ट जावास्क्रिप्ट में स्टैक के कार्यान्वयन के बारे में होगा। जैसा कि हम जावास्क्रिप्ट के साथ काम कर रहे हैं, हम स्टैक के आकार के बारे में चिंतित नहीं होंगे क्योंकि जावास्क्रिप्ट ऑब्जेक्ट्स का आकार गतिशील रूप से बढ़ सकता है।
जावास्क्रिप्ट में स्टैक का कार्यान्वयन
हम स्टैक डेटा संरचना को लागू करने के लिए जावास्क्रिप्ट क्लास का उपयोग करेंगे। ढेर क्लास में इसके कंस्ट्रक्टर में एक ऐरे होगा जिसका इस्तेमाल स्टैक में एलिमेंट्स को स्टोर करने के लिए किया जाएगा। वर्ग विभिन्न विधियों को भी परिभाषित करेगा जिनका उपयोग स्टैक के अंदर संग्रहीत डेटा में हेरफेर करने के लिए किया जाएगा। सरणी के सबसे बुनियादी तरीके हैं डालना() तथा निचोड़() स्टैक के ऊपर से तत्वों को जोड़ने और हटाने के लिए उपयोग की जाने वाली विधियाँ।
ढेर वर्ग अन्य विधियों को भी परिभाषित करता है जैसे कि झांकना () , खाली है() , स्पष्ट() , प्रिंट () तथा आकार() भी:
क्लास स्टैक {
निर्माता ( ) {
यह.तत्व = [ ] ;
}
// एक आइटम को स्टैक के ऊपर रखता है
डालना ( तत्व ) {
यह.तत्व.पुश ( तत्व ) ;
}
// स्टैक के ऊपर से किसी आइटम को हटाता है
निचोड़ ( ) {
यह.तत्व.पॉप ( ) ;
}
// स्टैक का सबसे ऊपरी तत्व लौटाता है
तिरछी ( ) {
वापसी यह.तत्व [ यह.तत्व.लंबाई - 1 ] ;
}
// चेकों यदि ढेर खाली है
खाली है ( ) {
वापसी यह.तत्व.लंबाई == 0 ;
}
// पूरे स्टैक को प्रिंट करता है
प्रिंट ( ) {
के लिये ( होने देना मैं = 0 ; मैं < यह।तत्व।लंबाई; मैं++ ) {
कंसोल.लॉग ( यह.तत्व [ मैं ] ) ;
}
}
// लौटाता है आकार ढेर के
आकार ( ) {
वापसी यह।तत्व।लंबाई;
}
// ढेर को साफ करता है
स्पष्ट ( ) {
यह.तत्व = [ ] ;
}
}
स्टैक से तत्वों को धक्का देना और पॉप करना
स्टैक का सबसे बुनियादी ऑपरेशन स्टैक के ऊपर से तत्वों को सम्मिलित करना और निकालना है। स्टैक वर्ग इन कार्यों के लिए दो विधियाँ प्रदान करता है:
उपर्युक्त कोड की पहली पंक्ति नाम के एक नए स्टैक की घोषणा करती है एस . फिर डालना() स्टैक में चार तत्वों को सम्मिलित करने के लिए विधि का उपयोग किया जाता है, जिनमें से दो को तब हटा दिया जाता है निचोड़() तरीका।
स्टैक से शीर्ष तत्व कैसे प्राप्त करें
ढेर वर्ग परिभाषित करता है झांकना () स्टैक से शीर्ष तत्व प्राप्त करने की विधि:
कैसे जांचें कि ढेर खाली है या नहीं?
वर्ग एक विधि को भी परिभाषित करता है जिसका उपयोग यह जांचने के लिए किया जा सकता है कि स्टैक खाली है या नहीं:
पूरे स्टैक को कैसे प्रिंट करें?
प्रिंट () पूरे स्टैक को प्रिंट करने के लिए विधि को कॉल किया जा सकता है
स्टैक के आकार की जांच कैसे करें?
आकार() विधि का उपयोग करता है ।लंबाई संपत्ति ढेर का आकार पाने के लिए:
पूरे ढेर को कैसे साफ़ करें?
बस आह्वान करें स्पष्ट() स्टैक के प्रत्येक तत्व को निकालने की विधि:
निष्कर्ष
स्टैक उपयोगी डेटा संरचनाएं हैं जिनमें कई वास्तविक दुनिया के अनुप्रयोग जैसे ब्राउज़र इतिहास, टेक्स्ट संपादकों में पूर्ववत करें बटन और कॉल लॉग शामिल हैं। ये सभी एप्लिकेशन LIFO सिद्धांत का पालन करते हैं जैसे, ब्राउज़र में बैक बटन पिछले विज़िट किए गए पृष्ठ पर वापस ले जाता है और कॉल लॉग की पहली प्रविष्टि हमेशा नवीनतम कॉल होती है।
जावास्क्रिप्ट में स्टैक का कार्यान्वयन वास्तव में आसान है क्योंकि इसमें अंतर्निहित है धकेलना तथा पॉप सरणी के लिए तरीके। यह आलेख जावास्क्रिप्ट में स्टैक के कार्यान्वयन की प्रक्रिया को प्रदर्शित करता है।