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

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


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

उदाहरण

class Stack_structure:
    def __init__(self):
        self.queue_1 = Queue_structure()
        self.queue_2 = Queue_structure()
    
    def check_empty(self):
        return self.queue_2.check_empty()
    
    def push_val(self, data):
        self.queue_1.enqueue_operation(data)
        while not self.queue_2.check_empty():
            x = self.queue_2.dequeue_operation()
            self.queue_1.enqueue_operation(x)
        self.queue_1, self.queue_2 = self.queue_2, self.queue_1
    
    def pop_val(self):
        return self.queue_2.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 56
आप कौन सा ऑपरेशन करना चाहेंगे? push 34
आप कौन सा ऑपरेशन करना चाहेंगे? push 78
आप कौन सा ऑपरेशन करना चाहेंगे? push 90
आप कौन सा ऑपरेशन करना चाहेंगे? pop
हटाया गया मान है: 90
आप कौन सा ऑपरेशन करना चाहेंगे? quit

व्याख्या

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

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

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

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

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

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

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

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

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

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

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

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

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


  1. - Python प्रोग्राम से दो मैट्रिक्स गुणा करना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें दो मैट्रिक्स दिए गए हैं, हमें उन्हें गुणा करना है और परिणाम प्रिंट करना है। दो मैट्रिक्स को गुणा करने के लिए पहले मैट्रिक्स के कॉलम दूसरे मैट्रिक्स की पंक्तियों के समान होने चाहिए। हर बार यह स्थिति सही मूल्यांक

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

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

  1. पायथन में सूची को स्टैक और क्यू के रूप में उपयोग करना पायथन में सूची को स्टैक और क्यू के रूप में उपयोग करना

    इस लेख में, हम पायथन 3.x (या पूर्व संस्करणों) में Stack और Queue संरचनाओं के बारे में सीखेंगे। यहाँ हम इन डेटा संरचनाओं के भीतर कार्य और संशोधन पर चर्चा करेंगे। इसमें शामिल हैं - सम्मिलन संक्रिया (Push, Enqueue) हटाने की संक्रिया (Pop, Dequeue) प्रदर्शन/ट्रैवर्सल संक्रिया पूर्वापेक्षाएँ: सूची औ