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

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

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

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

उदाहरण

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('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('The 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 89
What operation would you like to perform ? push 43
What operation would you like to perform ? push 76
What operation would you like to perform ? push 56
What operation would you like to perform ? pop
The deleted value is : 56
What operation would you like to perform ? quit

स्पष्टीकरण

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

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

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

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

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

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

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

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

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

  • इस 'स्टैक_स्ट्रक्चर' का एक उदाहरण परिभाषित किया गया है।

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

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

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


  1. पायथन में न्यूनतम ढेर

    यहां हम देखेंगे कि एक स्टैक कैसे बनाया जाता है, जो निरंतर समय में पुश, पॉप, टॉप और न्यूनतम तत्व को पुनः प्राप्त कर सकता है। तो फ़ंक्शन पुश (x), पॉप (), शीर्ष () और getMin () होंगे इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - न्यूनतम तत्व द्वारा स्टैक को इनफिनिटी के रूप में प्रारंभ करें पुश ऑपर

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

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

  1. कतार मॉड्यूल का उपयोग करके पायथन में ढेर और कतार

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