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

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

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

नीचे उसी का एक प्रदर्शन है -

उदाहरण

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('Menu')
print('push <value>')
print('pop')
print('quit')

while True:
   my_input = input('What operation would you like to perform ? ').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('Stack is empty.')
      else:
         print('The deleted value is: ', my_instance.pop_val())
   elif operation == 'quit':
      break

आउटपुट

Menu
push <value>
pop
quit
What operation would you like to perform ? push 56
What operation would you like to perform ? push 34
What operation would you like to perform ? push 78
What operation would you like to perform ? push 90
What operation would you like to perform ? pop
The deleted value is: 90
What operation would you like to perform ? quit

स्पष्टीकरण

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

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

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

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

  • एक 'Queue_structure' वर्ग बनाया जाता है जो एक खाली सूची को प्रारंभ करता है और सूची का आकार 0 के रूप में निर्दिष्ट करता है।

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

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

  • 'डेक्यू_ऑपरेशन' नामक एक अन्य विधि को परिभाषित किया गया है जो क्यू से तत्वों को हटाता है।

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

  • इस 'क्यू_स्ट्रक्चर' के दो उदाहरण परिभाषित हैं।

  • चार विकल्प दिए गए हैं- मेन्यू, पुश, पॉप और क्विट।

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

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


  1. दो आव्यूहों को गुणा करने के लिए पायथन कार्यक्रम

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

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

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

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

    इस लेख में, हम पायथन 3.x में स्टैक और कतार संरचनाओं के बारे में जानेंगे। या जल्दी। यहां हम इन डेटा संरचनाओं के कामकाज और संशोधन पर चर्चा करेंगे - इसमें शामिल हैं - इंसर्शन ऑपरेशन (पुश, एनक्यू) हटाने की कार्रवाई (पॉप, डीक्यू) डिस्प्ले / ट्रैवर्सिंग ऑपरेशन आवश्यकताएं :सूची और सूची संचालन संबंधित