जब एक लिंक की गई सूची का उपयोग करके एक कतार डेटा संरचना को लागू करने की आवश्यकता होती है, तो लिंक की गई सूची में तत्वों को जोड़ने (एनक्यू ऑपरेशन) करने की एक विधि, और लिंक की गई सूची के तत्वों को हटाने (डीक्यू ऑपरेशन) करने की एक विधि परिभाषित की जाती है।
नीचे उसी के लिए एक प्रदर्शन है -
उदाहरण
class Node:
def __init__(self, data):
self.data = data
self.next = None
class Queue_structure:
def __init__(self):
self.head = None
self.last = None
def enqueue_operation(self, data):
if self.last is None:
self.head = Node(data)
self.last = self.head
else:
self.last.next = Node(data)
self.last = self.last.next
def dequeue_operation(self):
if self.head is None:
return None
else:
val_returned = self.head.data
self.head = self.head.next
return val_returned
my_instance = Queue_structure()
while True:
print('enqueue <value>')
print('dequeue')
print('quit')
my_input = input('What operation would you like to perform ? ').split()
operation = my_input[0].strip().lower()
if operation == 'enqueue':
my_instance.enqueue_operation(int(my_input[1]))
elif operation == 'dequeue':
dequeued = my_instance.dequeue_operation()
if dequeued is None:
print('The queue is empty.')
else:
print('The deleted element is : ', int(dequeued))
elif operation == 'quit':
break आउटपुट
enqueue <value> dequeue quit What operation would you like to perform ? enqueue 45 enqueue <value> dequeue quit What operation would you like to perform ? enqueue 12 enqueue <value> dequeue quit What operation would you like to perform ? dequeue The deleted element is : 45 enqueue <value> dequeue quit What operation would you like to perform ? quit
स्पष्टीकरण
-
'नोड' वर्ग बनाया गया है।
-
आवश्यक विशेषताओं के साथ एक और 'क्यू_स्ट्रक्चर' वर्ग बनाया गया है।
-
इसमें एक 'init' फंक्शन होता है जिसका इस्तेमाल पहले एलिमेंट यानी 'हेड' से 'कोई नहीं' को इनिशियलाइज़ करने के लिए किया जाता है।
-
Enqueue_operation' नाम की एक विधि परिभाषित की गई है, जो कतार में एक मान जोड़ने में मदद करती है।
-
'डेक्यू_ऑपरेशन' नाम की एक अन्य विधि परिभाषित की गई है, जो कतार से एक मान को हटाने में मदद करती है, और हटाए गए मान को वापस करती है।
-
'Queue_struct' का एक उदाहरण बनाया गया है।
-
तीन विकल्प दिए गए हैं, जैसे 'एनक्यू', 'डेक्यू' और 'क्विट'।
-
'एनक्यू' विकल्प स्टैक में एक विशिष्ट मान जोड़ता है।
-
'डेक्यू' विकल्प कतार से तत्व को हटा देता है।
-
'छोड़ो' विकल्प लूप से बाहर आता है।
-
उपयोगकर्ता द्वारा इनपुट/पसंद के आधार पर, संबंधित ऑपरेशन किए जाते हैं।
-
यह आउटपुट कंसोल पर प्रदर्शित होता है।