Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन प्रोग्राम: एक कतार का उपयोग करके स्टैक लागू करना


जब एकल कतार का उपयोग करके स्टैक लागू करने की आवश्यकता होती है, तो एक 'Stack_structure' क्लास की आवश्यकता होती है साथ में एक Queue_structure क्लास। इन क्लास में स्टैक और कतार से मान जोड़ने और हटाने के लिए संबंधित विधियाँ परिभाषित की जाती हैं।

उदाहरण

class Stack_structure:
    def __init__(self):
        self.q = Queue_structure()
    
    def check_empty(self):
        return self.q.check_empty()
    
    def push_val(self, data):
        self.q.enqueue_operation(data)
    
    def pop_val(self):
        for _ in range(self.q.size_calculate() - 1):
            dequeued = self.q.dequeue_operation()
            self.q.enqueue_operation(dequeued)
        return self.q.dequeue_operation()

class Queue_structure:
    def __init__(self):
        self.items = []
        self.size = 0
    
    def check_empty(self):
        return self.items == []
    
    def enqueue_operation(self, data):
        self.size += 1
        self.items.append(data)
    
    def dequeue_operation(self):
        self.size -= 1
        return self.items.pop(0)
    
    def size_calculate(self):
        return self.size

my_instance = Stack_structure()
print('मेनू')
print('push ')
print('pop')
print('quit')

while True:
    my_input = input('आप कौन सा ऑपरेशन करना चाहेंगे? ').split()
    operation = my_input[0].strip().lower()
    
    if operation == 'push':
        my_instance.push_val(int(my_input[1]))
    elif operation == 'pop':
        if my_instance.check_empty():
            print('स्टैक खाली है।')
        else:
            print('हटाया गया मान है:', my_instance.pop_val())
    elif operation == 'quit':
        break

आउटपुट

मेनू
push 
pop
quit
आप कौन सा ऑपरेशन करना चाहेंगे? push 89
आप कौन सा ऑपरेशन करना चाहेंगे? push 43
आप कौन सा ऑपरेशन करना चाहेंगे? push 76
आप कौन सा ऑपरेशन करना चाहेंगे? push 56
आप कौन सा ऑपरेशन करना चाहेंगे? pop
हटाया गया मान है: 56
आप कौन सा ऑपरेशन करना चाहेंगे? quit

व्याख्या

  • एक 'Stack_structure' क्लास बनाई गई है जो एक खाली सूची इनिशियलाइज़ करती है।

  • स्टैक खाली है या नहीं यह देखने के लिए 'check_empty' विधि परिभाषित की गई है।

  • 'push_val' नामक एक अन्य विधि परिभाषित की गई है जो स्टैक में तत्व जोड़ती है।

  • 'pop_val' नामक एक अन्य विधि परिभाषित की गई है जो स्टैक से तत्व हटाती है।

  • एक 'Queue_structure' क्लास बनाई गई है जो एक खाली सूची इनिशियलाइज़ करती है और सूची का आकार 0 निर्दिष्ट करती है।

  • कतार खाली है या नहीं यह देखने के लिए 'check_empty' विधि परिभाषित की गई है।

  • 'enqueue_operation' नामक एक अन्य विधि परिभाषित की गई है जो कतार में तत्व जोड़ती है।

  • 'dequeue_operation' नामक एक अन्य विधि परिभाषित की गई है जो कतार से तत्व हटाती है।

  • 'size_calculate' नामक एक अन्य विधि परिभाषित की गई है, जो कतार का आकार निर्धारित करती है।

  • इस 'Stack_structure' का एक इंस्टेंस परिभाषित किया गया है।

  • चार विकल्प दिए गए हैं- मेनू, push, pop, और quit।

  • उपयोगकर्ता द्वारा दिए गए इनपुट के आधार पर, स्टैक के तत्वों पर ऑपरेशन किए जाते हैं।

  • आउटपुट कंसोल पर प्रदर्शित किया जाता है।


  1. - पायथन में मिन स्टैक

    यहां हम देखेंगे कि कैसे एक स्टैक बनाया जाए जो पुश, पॉप, टॉप, और न्यूनतम तत्व को स्थिर समय में प्राप्त कर सके। फंक्शन होंगे push(x), pop(), top() और getMin()। हल करने के चरण स्टैक को अनंत के रूप में न्यूनतम तत्व से आरंभ करें पुश ऑपरेशन push(x) के लिए यदि x < min, तो min := x अपडेट करें, x को स्टैक

  1. पायथन प्रोग्राम में यूनिट टेस्टिंग Unittest का उपयोग करके पायथन प्रोग्राम में यूनिट टेस्टिंग Unittest का उपयोग करके

    इस लेख में, हम पायथन 3.x में उपलब्ध unittest मॉड्यूल की मदद से सॉफ्टवेयर टेस्टिंग के फंडामेंटल्स सीखेंगे। या इससे पहले। यह ऑटोमेशन, टेस्ट्स के लिए सेटअप और एग्जिट कोड शेयर करने, और हर फ्रेमवर्क के लिए इंडिपेंडेंट टेस्ट्स की अनुमति देता है। यूनिट टेस्ट में, हम ऑब्जेक्ट ओरिएंटेड कॉन्सेप्ट्स की एक वि

  1. - Python में queue मॉड्यूल का उपयोग करके स्टैक और क्यू

    Python में, स्टैक और क्यू डेटा स्ट्रक्चर्स को लागू करना बहुत आसान है। स्टैक को LIFO कहा जाता है क्योंकि स्टैक लास्ट-इन, फर्स्ट-आउट सिद्धांत पर काम करता है और क्यू को FIFO कहा जाता है क्योंकि क्यू फर्स्ट-इन, फर्स्ट-आउट सिद्धांत पर काम करता है, और Python में बिल्ट-इन फ़ंक्शन्स कोड को छोटा और सरल बनाते