"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > जेएस ने डीएस एंड ए परिचय को ढेर कर दिया

जेएस ने डीएस एंड ए परिचय को ढेर कर दिया

2024-08-26 को प्रकाशित
ब्राउज़ करें:779

यदि आप किसी आधुनिक उपकरण का उपयोग करते हैं, तो संभवतः आपको स्टैक संचालन का सामना करना पड़ा होगा, भले ही आपको इसका एहसास नहीं हुआ हो। फ़ंक्शन कॉल को प्रबंधित करने से लेकर पूर्ववत संचालन को सक्षम करने तक, कई प्रोग्रामिंग कार्यों में स्टैक मूलभूत हैं।

स्टैक क्या हैं?

स्टैक एक रैखिक डेटा संरचना है जो LIFO या FILO संरचना में डेटा को व्यवस्थित करने वाले संचालन के क्रम का पालन करती है।

LIFO: लास्ट इन, फर्स्ट आउट।

FILO: प्रथम प्रवेश, अंतिम आउट।

स्टैक का उपयोग तत्वों के संग्रह पर संचालन करने के लिए किया जाता है जैसे कि तत्वों को जोड़ना और हटाना, शीर्ष तत्वों को प्रदर्शित करना और यह प्रदर्शित करना कि संग्रह खाली है या भरा हुआ है।

उदाहरण के लिए:

जब आप वर्तमान में अपने वेब ब्राउज़र पर www.ESPN.com पर जा रहे हैं और आप गलती से शिकागो वाइट सॉक्स बेसबॉल टिकटों के विज्ञापन पर क्लिक कर देते हैं। हमने अपने स्टैक में जोड़ा, शायद जानबूझकर नहीं, लेकिन अब यह हमारे स्टैक में सबसे ऊपर है। तब हमें एहसास हुआ कि शिकागो वाइट सॉक्स लगातार 15 गेम हार चुका है। ठीक है...आइए उस बैक बटन को दबाएं (स्टैक के शीर्ष से उस तत्व को हटा दें)।

JS stacks DS&A intro

हां, वह वहीं ऊपर है। यह स्टैक संचालन में LIFO सिद्धांत को प्रदर्शित करता है, हम www.ESPN.com पर लौटने के लिए अपने इतिहास (या स्टैक) से अंतिम बार देखे गए पृष्ठ को छोड़ रहे हैं (हटा रहे हैं) ... शायद अगले साल वाइट सॉक्स।

स्टैक ऑपरेशंस का उपयोग अक्सर उन अनुप्रयोगों में किया जाता है, जिन्हें वेब ब्राउज़र इतिहास को बनाए रखने, टेक्स्ट संपादकों पर पूर्ववत करने और फिर से करने और कुछ नाम देने के लिए फ़ंक्शन कॉल स्टैक की आवश्यकता होती है।

स्टैक बदलते समय आमतौर पर उपयोग किए जाने वाले फ़ंक्शन इस प्रकार हैं:

.पुश = स्टैक पर तत्व जोड़ने के लिए।

.pop = स्टैक से शीर्ष तत्व को हटाने के लिए।

.peek = स्टैक के शीर्ष तत्व को प्रदर्शित करने के लिए।

.length/.size = एक स्टैक में कुल इंडेक्स निर्धारित करने के लिए। जावास्क्रिप्ट (.length)

का उपयोग करता है

.isEmpty = जाँचता है कि कोई स्टैक खाली है या नहीं।

.isFull = जाँचता है कि कोई स्टैक भरा हुआ है या नहीं; यदि सरणी का आकार निश्चित है।

स्टैक्स डेटा संरचना को स्टैक क्लास या नियमित सरणी के साथ बनाया जा सकता है।

कक्षा के बिना स्टैक लागू करना:

स्टैक वर्ग के बिना स्टैक संचालन करते समय, हम एक सरणी के साथ स्टैक संचालन का अनुकरण करते हैं।

नीचे संख्याओं की एक श्रृंखला को उलटने के लिए स्टैक संचालन का उपयोग करने का एक उदाहरण दिया जाएगा। मैं सरणी परिणाम के मूल्यों की इच्छा सरणी परिणाम से तुलना करने के लिए JSON.stringify का उपयोग करूंगा।

पूर्व:

// Reverse an array using stack operations

let number = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; // original array
let numberList = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]; // reversed array
let ordernumberList = []; // array to store the reversed order

// Loop through the numberList array to reverse its order
for (var i = 0; i 



मैं अंत में यदि-अन्यथा कथन पर प्रकाश डालना चाहता हूं। मैंने दो सरणियों की तुलना करने के लिए JSON.stringify विधि का उपयोग किया, क्योंकि इसके बिना, तुलना गलत हो जाएगी, जिससे अन्य स्थिति ट्रिगर हो जाएगी, भले ही सरणियों में समान सामग्री हो। ऐसा इसलिए होता है, क्योंकि जावास्क्रिप्ट में सरणियों की तुलना करते समय, तुलना सरणियों के अंदर की वास्तविक सामग्री के बजाय उनके संदर्भों (यानी, उनके मेमोरी स्थानों) की जांच करती है।

जैसा कि हम पूरे फॉर-लूप में देख सकते हैं, हमारी विधि .pop (हटा दिया गया) नंबरलिस्ट सरणी पहले (LIFO) में अंतिम इंडेक्स। फिर .push विधि का उपयोग करके इसे मूल सरणी को उलट कर नई सरणी ordernumberList में जोड़ें।

FILO नए ऐरे में आता है, जिसे ऑर्डरनंबरलिस्ट ऐरे में धकेले गए पहले इंडेक्स के रूप में तैयार किया गया है, यदि कभी भी स्टैक ऑपरेशंस के साथ संशोधित किया जाता है तो यह आखिरी इंडेक्स (FILO) होगा।

इस लेख में, हमने पता लगाया है कि जावास्क्रिप्ट में लागू स्टैक संचालन, LIFO और FILO सिद्धांतों का उपयोग करके स्टैक कैसे संचालित होते हैं। कई प्रोग्रामिंग कार्यों के लिए स्टैक को समझना आवश्यक है, जैसा कि वेब ब्राउजिंग जैसे वास्तविक दुनिया के परिदृश्यों में देखा जाता है।

विज्ञप्ति वक्तव्य यह लेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/cedsengine/js-stacks-dsa-intro-bl3?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3