जब स्टैक का उपयोग करके कतार लागू करने की आवश्यकता होती है, तो एक कतार क्लास परिभाषित की जा सकती है, जहां दो स्टैक इंस्टेंस परिभाषित किए जा सकते हैं। कतार पर विभिन्न ऑपरेशन किए जा सकते हैं जो इस क्लास में विधियों के रूप में परिभाषित हैं।
उदाहरण
class Queue_structure:
def __init__(self):
self.in_val = Stack_structure()
self.out_val = Stack_structure()
def check_empty(self):
return (self.in_val.check_empty() and self.out_val.check_empty())
def enqueue_operation(self, data):
self.in_val.push_operation(data)
def dequeue_operation(self):
if self.out_val.check_empty():
while not self.in_val.check_empty():
deleted_val = self.in_val.pop_operation()
self.out_val.push_operation(deleted_val)
return self.out_val.pop_operation()
class Stack_structure:
def __init__(self):
self.items = []
def check_empty(self):
return self.items == []
def push_operation(self, data):
self.items.append(data)
def pop_operation(self):
return self.items.pop()
my_instance = Queue_structure()
while True:
print('enqueue ')
print('dequeue')
print('quit')
my_input = input('आप कौन सा ऑपरेशन करना चाहेंगे? ').split()
operation = my_input[0].strip().lower()
if operation == 'enqueue':
my_instance.enqueue_operation(int(my_input[1]))
elif operation == 'dequeue':
if my_instance.check_empty():
print('कतार खाली है')
else:
deleted_elem = my_instance.dequeue_operation()
print('हटाया गया तत्व है:', int(deleted_elem))
elif operation == 'quit':
break
आउटपुट
enqueuedequeue quit आप कौन सा ऑपरेशन करना चाहेंगे? enqueue 45 enqueue dequeue quit आप कौन सा ऑपरेशन करना चाहेंगे? enqueue 23 enqueue dequeue quit आप कौन सा ऑपरेशन करना चाहेंगे? enqueue 78 enqueue dequeue quit आप कौन सा ऑपरेशन करना चाहेंगे? dequeue हटाया गया तत्व है: 45 enqueue dequeue quit आप कौन सा ऑपरेशन करना चाहेंगे? quit
व्याख्या
एक 'Queue_structure' परिभाषित की गई है, जो स्टैक के दो इंस्टेंस परिभाषित करती है।
इसमें 'check_empty' नामक एक विधि है जो जांचती है कि कतार खाली है या नहीं।
'enqueue_operation' नामक एक अन्य विधि परिभाषित की गई है, जो कतार में तत्व जोड़ने में मदद करती है।
'dequeue_operation' नामक एक अन्य विधि परिभाषित की गई है, जो कतार से एक तत्व हटाती है।
एक अन्य 'Stack_structure' क्लास बनाई गई है।
यह एक खाली सूची इनिशियलाइज़ करता है।
इसमें 'check_empty' नामक एक विधि है जो जांचती है कि स्टैक खाली है या नहीं।
'push_operation' नामक एक अन्य विधि परिभाषित की गई है, जो कतार में तत्व जोड़ने में मदद करती है।
'pop_operation' नामक एक अन्य विधि परिभाषित की गई है, जो कतार से एक तत्व हटाती है।
एक 'Queue_structure' इंस्टेंस बनाया जाता है।
तीन विकल्प दिए गए हैं- enqueue, dequeue, और quit।
उपयोगकर्ता द्वारा दिए गए विकल्प के आधार पर, ऑपरेशन किए जाते हैं, और प्रासंगिक आउटपुट कंसोल पर प्रदर्शित किया जाता है।