स्टैक्स एक महत्वपूर्ण डेटा संरचना है जिसके उपयोग की एक विस्तृत श्रृंखला है।
प्रोग्रामिंग में, स्टैक्स आपको डेटा को लास्ट-इन, फर्स्ट-आउट (LIFO) क्रम में स्टोर करने की अनुमति देते हैं। इसका मतलब है कि स्टैक में स्टोर किया गया अंतिम आइटम पहला होगा जिसे प्रोसेस किया जाएगा।
लेकिन आप पायथन में स्टैक कैसे बनाते हैं? यही वह सवाल है जिसका जवाब हम इस गाइड में देंगे। इस गाइड को पढ़ने के अंत तक, आप पायथन में स्टैक्स बनाने और उनके साथ काम करने में विशेषज्ञ होंगे।
पायथन स्टैक्स
स्टैक्स डेटा को लास्ट-इन, फर्स्ट-आउट (LIFO) क्रम में स्टोर करते हैं।
यह समझने में आपकी सहायता के लिए कि यह क्रम कैसे काम करता है, प्लेट्स के एक ढेर पर विचार करें। जब आपके पास साफ करने के लिए प्लेट्स का एक ढेर होता है, तो पहली प्लेट जिसे आप हटाएंगे वह शीर्ष पर होगी। फिर, जैसे-जैसे आप प्लेट्स हटाते हैं, आप ढेर में नीचे की प्लेट्स तक पहुंच पाएंगे।
स्टैक्स पायथन में क्यूज के विपरीत हैं। क्यूज सबसे कम हाल ही में जोड़े गए आइटम को हटाते हैं (क्योंकि वे फर्स्ट-इन, फर्स्ट-आउट संरचना का उपयोग करते हैं), जबकि स्टैक्स सबसे हाल ही में जोड़े गए आइटम को हटाते हैं (क्योंकि वे लास्ट-इन, फर्स्ट-आउट संरचना का उपयोग करते हैं)।
स्टैक्स आमतौर पर दो ऑपरेशन्स को सपोर्ट करते हैं: पुश और पॉप। पुश करने से आप स्टैक के शीर्ष पर एक आइटम जोड़ सकते हैं, और पॉप करने से आप स्टैक के शीर्ष पर आइटम को हटा सकते हैं।
पायथन में, स्टैक बनाने के लिए दो मुख्य दृष्टिकोण हैं: बिल्ट-इन लिस्ट्स का उपयोग करना, और collections.deque() क्लास का उपयोग करना। आइए देखें कि इनमें से प्रत्येक दृष्टिकोण कैसे काम करता है।
पायथन बिल्ट-इन लिस्ट्स
बिल्ट-इन लिस्ट डेटा टाइप आपको पायथन में स्टैक बनाने की अनुमति देता है।
क्योंकि पायथन लिस्ट्स को सरणियों के रूप में लागू किया जाता है, आप उनमें आसानी से आइटम जोड़ और हटा सकते हैं। इसके अलावा, जिस क्रम में आप लिस्ट में मान डालते हैं वह संरक्षित रहेगा, जिसका अर्थ है कि आप लिस्ट में पहले और अंतिम आइटम्स को आसानी से हटा सकते हैं।
मान लीजिए हम एक स्टैक बनाना चाहते हैं जो एक क्लास में होमवर्क असाइनमेंट्स की सूची स्टोर करता है। शिक्षक इन असाइनमेंट्स को उस क्रम में ग्रेड करना चाहते हैं जिस क्रम में वे ढेर में दिखाई देते हैं (इसलिए, पहले जमा किया गया असाइनमेंट स्टैक के नीचे होगा, और अंतिम जमा किया गया असाइनमेंट स्टैक के शीर्ष पर होगा)।
स्टैक में आइटम जोड़ें
स्टैक में आइटम जोड़ने के लिए, हम append() मेथड का उपयोग कर सकते हैं। हम निम्न कोड का उपयोग करके अपने होमवर्क असाइनमेंट स्टैक को बना सकते हैं:
assignments = [] assignments.append("Hannah") assignments.append("Benny") assignments.append("Gordon") print(assignments)
हमारा कोड रिटर्न करता है:
['Hannah','Benny','Gordon']
हमारे कोड में, हम पहले assignments नामक एक लिस्ट घोषित करते हैं। फिर, हम जमा किए गए असाइनमेंट्स की अपनी सूची में तीन नाम जोड़ने के लिए append() मेथड का उपयोग करते हैं। हम जिन नामों को जोड़ते हैं वे क्रम में हैं: हन्ना, बेनी, गॉर्डन। क्योंकि गॉर्डन ने अपना असाइनमेंट अंतिम में जमा किया, यह हमारी सूची में अंतिम स्थिति में दिखाई देता है।
स्टैक से आइटम हटाएं
मान लीजिए कि हमने गॉर्डन का असाइनमेंट ग्रेड कर दिया है, और हम जानना चाहते हैं कि आगे कौन सा ग्रेड करना है। इसमें हमारे स्टैक के शीर्ष पर आइटम को हटाना शामिल है।
अपने स्टैक से आइटम हटाने के लिए, हम pop() मेथड का उपयोग कर सकते हैं। यहां वह कोड है जिसका उपयोग हम अपने स्टैक से शीर्ष आइटम को हटाने के लिए कर सकते हैं:
assignments = [] assignments.append("Hannah") assignments.append("Benny") assignments.append("Gordon") assignments.pop() print(assignments)
हमारा कोड रिटर्न करता है:
['Hannah','Benny']
pop() का उपयोग करके गॉर्डन का नाम स्टैक से हटा दिया गया है, और इसलिए हमारा स्टैक अब केवल दो नाम रखता है: हन्ना और बेनी।
collections.deque क्लास
कलेक्शन्स लाइब्रेरी में deque क्लास आपको डबल-एंडेड क्यू बनाने की अनुमति देती है।
deque ऑब्जेक्ट को डबल-लिंक्ड लिस्ट के रूप में लागू किया जाता है, जिसका अर्थ है कि एलिमेंट्स को डालने और हटाने पर इसका मजबूत और सुसंगत प्रदर्शन होता है। इसके अलावा, क्योंकि कलेक्शन्स लाइब्रेरी पायथन स्टैंडर्ड लाइब्रेरी का हिस्सा है, आप इसे बाहरी लाइब्रेरी डाउनलोड किए बिना अपने कोड में इंपोर्ट कर सकते हैं।
collections.deque क्लास के साथ काम करने के लिए, हमें पहले इसे इंपोर्ट स्टेटमेंट का उपयोग करके अपने कोड में इंपोर्ट करना होगा:
from collections import deque
आइए पहले के हमारे होमवर्क उदाहरण पर लौटें ताकि यह दिखाया जा सके कि collections.deque क्लास कैसे काम करती है।
Deque स्टैक में आइटम जोड़ें
deque स्टैक में आइटम जोड़ने के लिए, हम append() मेथड का उपयोग कर सकते हैं। मान लीजिए हम deque क्लास का उपयोग करके अपने होमवर्क असाइनमेंट्स के साथ एक क्यू बनाना चाहते हैं। हम इसे इस कोड का उपयोग करके कर सकते हैं:
from collections import deque assignments = deque() assignments.append("Hannah") assignments.append("Benny") assignments.append("Gordon") print(assignments)
हमारा कोड रिटर्न करता है:
deque(['Hannah','Benny','Gordon'])
आइए अपने कोड को तोड़ दें। पहले, हम कलेक्शन्स लाइब्रेरी से deque क्लास इंपोर्ट करते हैं। फिर, हम deque() का उपयोग करके एक deque बनाते हैं और इसे वेरिएबल assignments को असाइन करते हैं।
अगला, हम अपने असाइनमेंट्स deque में तीन नाम जोड़ते हैं: हन्ना, बेनी, और गॉर्डन। अंत में, हम अपने असाइनमेंट्स क्यू की सामग्री को कंसोल पर प्रिंट करते हैं।
आप देख सकते हैं कि, इस उदाहरण में, हमारा डेटा स्टैक के बजाय deque के रूप में स्टोर है (इस तथ्य से दर्शाया गया है कि हमारा परिणाम deque() में संलग्न है)। ऐसा इसलिए है क्योंकि हम deque संरचना का उपयोग कर रहे हैं, भले ही हमारा डेटा अभी भी स्टैक की तरह कार्य करता है।
Deque स्टैक से आइटम हटाएं
deque स्टैक से आइटम हटाने के लिए, आप pop() मेथड का उपयोग कर सकते हैं।
मान लीजिए हमने अभी गॉर्डन और बेनी के असाइनमेंट ग्रेड किए हैं। उन्हें अपने स्टैक से हटाने के लिए, हम निम्न कोड का उपयोग कर सकते हैं:
from collections import deque assignments = deque() assignments.append("Hannah") assignments.append("Benny") assignments.append("Gordon") assignments.pop() assignments.pop() print(assignments)
हमारा कोड रिटर्न करता है:
deque(['Hannah'])
हमारे कोड में, हम पहले तीन मानों के साथ एक deque स्टैक बनाते हैं। फिर, हम pop() स्टेटमेंट को दो बार निष्पादित करते हैं। हर बार pop() स्टेटमेंट चलता है, स्टैक के शीर्ष पर आइटम हटा दिया जाता है। इसका मतलब है कि मान गॉर्डन और फिर बेनी हमारे स्टैक से हटा दिए जाते हैं, जिससे हन्ना हमारे स्टैक में बचा एकमात्र आइटम रह जाता है।
पायथन deque क्लास के बारे में अधिक जानने के लिए, पायथन क्यूज और डीक्यूज पर हमारा ट्यूटोरियल पढ़ें।
निष्कर्ष
स्टैक्स आपको डेटा को लास्ट-इन, फर्स्ट-आउट क्रम में स्टोर करने की अनुमति देते हैं। पायथन में स्टैक लागू करने के कई तरीके हैं, लेकिन दो सबसे व्यावहारिक दृष्टिकोण पायथन बिल्ट-इन लिस्ट संरचना का उपयोग करना है, या collections.deque() क्लास का उपयोग करना है।
इस ट्यूटोरियल में, उदाहरणों के संदर्भ में, लिस्ट्स और collections.deque() का उपयोग करके पायथन में स्टैक बनाने के तरीके पर चर्चा की गई। अब आप एक पेशेवर पायथन डेवलपर की तरह अपने खुद के स्टैक्स बनाना शुरू करने के लिए तैयार हैं!