जब पायथन का उपयोग करके स्टैक लागू करने की आवश्यकता होती है, तो एक स्टैक क्लास बनाई जाती है, और इस क्लास का एक इंस्टेंस बनाया जाता है। तत्वों को पुश और पॉप करने के लिए मेथड्स परिभाषित किए जाते हैं और इंस्टेंस का उपयोग इन मेथड्स को कॉल करने के लिए किया जाता है।
उदाहरण
class Stack_struct:
def __init__(self):
self.items = []
def check_empty(self):
return self.items == []
def add_elements(self, my_data):
self.items.append(my_data)
def delete_elements(self):
return self.items.pop()
my_instance = Stack_struct()
while True:
print('Push <value>')
print('Pop')
print('Quit')
my_input = input('आप कौन सा ऑपरेशन करना चाहेंगे? ').split()
my_op = my_input[0].strip().lower()
if my_op == 'push':
my_instance.add_elements(int(my_input[1]))
elif my_op == 'pop':
if my_instance.check_empty():
print('स्टैक खाली है')
else:
print('हटाया गया मान है: ', my_instance.delete_elements())
elif my_op == 'quit':
break
आउटपुट
Push <value> Pop Quit आप कौन सा ऑपरेशन करना चाहेंगे? Push 6 Push <value> Pop Quit आप कौन सा ऑपरेशन करना चाहेंगे? Push 8 Push <value> Pop Quit आप कौन सा ऑपरेशन करना चाहेंगे? Push 34 Push <value> Pop Quit आप कौन सा ऑपरेशन करना चाहेंगे? Pop हटाया गया मान है: 34 Push <value> Pop Quit
व्याख्या
आवश्यक विशेषताओं के साथ 'Stack_struct' क्लास बनाई गई है।
इसमें एक खाली सूची बनाने के लिए 'init' फ़ंक्शन है।
'check_empty' नामक एक अन्य मेथड जो जांचता है कि सूची खाली है या नहीं।
'add_elements' नामक एक अन्य मेथड खाली सूची में तत्व जोड़ने के लिए परिभाषित की गई है।
'delete_elements' नामक एक मेथड सूची से तत्वों को हटाने के लिए परिभाषित की गई है।
'Stack_struct' क्लास का एक ऑब्जेक्ट बनाया जाता है।
उपयोगकर्ता इनपुट लिया जाता है कि कौन सा ऑपरेशन करना है।
उपयोगकर्ता की पसंद के आधार पर, ऑपरेशन किया जाता है।
प्रासंगिक आउटपुट कंसोल पर प्रदर्शित होता है।
नोट: आउटपुट में टाइपो
मूल आउटपुट में "Psuh" (Push का टाइपो) दिखाया गया है, लेकिन कोड सही ढंग से 'push' को संभालता है।
स्टैक ऑपरेशन सारांश
| ऑपरेशन | मेथड | समय जटिलता | विवरण |
|---|---|---|---|
| Push | append() | O(1) अमॉर्टाइज्ड | शीर्ष पर तत्व जोड़ता है |
| Pop | pop() | O(1) | शीर्ष तत्व हटाता है और लौटाता है |
| Peek/Top | items[-1] | O(1) | बिना हटाए शीर्ष तत्व देखता है |
| isEmpty | len() == 0 | O(1) | जांचता है कि स्टैक खाली है या नहीं |
| Size | len() | O(1) | तत्वों की संख्या लौटाता है |
आवेदन
अभिव्यक्ति मूल्यांकन (इनफिक्स से पोस्टफिक्स, पोस्टफिक्स मूल्यांकन)
बैकट्रैकिंग एल्गोरिदम (भूलभुलैया, N-क्वीन)
फंक्शन कॉल प्रबंधन (कॉल स्टैक)
अनडू/रिडू कार्यक्षमता
ब्रैकेट मिलान और पार्सिंग