जब पायथन का उपयोग करके क्यू लागू करने की आवश्यकता होती है, तो एक क्यू क्लास बनाई जाती है, और तत्वों को जोड़ने और हटाने के लिए मेथड्स परिभाषित किए जाते हैं। क्लास का एक इंस्टेंस बनाया जाता है, और इन मेथड्स को इंस्टेंस का उपयोग करके कॉल किया जाता है और प्रासंगिक आउटपुट प्रदर्शित किया जाता है।
उदाहरण
class Queue_struct:
def __init__(self):
self.items = []
def check_empty(self):
return self.items == []
def enqueue_elem(self, data):
self.items.append(data)
def dequeue_elem(self):
return self.items.pop(0)
my_instance = Queue_struct()
while True:
print('Enqueue <value>')
print('Dequeue')
print('Quit')
my_input = input('आप कौन सा ऑपरेशन करेंगे? ').split()
operation = my_input[0].strip().lower()
if operation == 'enqueue':
my_instance.enqueue_elem(int(my_input[1]))
elif operation == 'dequeue':
if my_instance.check_empty():
print('क्यू खाली है...')
else:
print('हटाया गया मान है: ', my_instance.dequeue_elem())
elif operation == 'quit':
break
आउटपुट
Enqueue <value> Dequeue Quit आप कौन सा ऑपरेशन करेंगे? Enqueue 45 Enqueue <value> Dequeue Quit आप कौन सा ऑपरेशन करेंगे? Enqueue 56 Enqueue <value> Dequeue Quit आप कौन सा ऑपरेशन करेंगे? Enqueue 89 Enqueue <value> Dequeue Quit आप कौन सा ऑपरेशन करेंगे? Dequeue हटाया गया मान है: 45 Enqueue <value> Dequeue Quit आप कौन सा ऑपरेशन करेंगे? Dequeue हटाया गया मान है: 56 Enqueue <value> Dequeue Quit आप कौन सा ऑपरेशन करेंगे? Quit
व्याख्या
आवश्यक विशेषताओं के साथ 'Queue_struct' क्लास बनाई गई है।
इसमें एक खाली सूची बनाने के लिए 'init' फ़ंक्शन है।
'check_empty' नामक एक अन्य मेथड जो जांचता है कि सूची खाली है या नहीं।
'enqueue_elem' नामक एक अन्य मेथड खाली सूची में तत्व जोड़ने के लिए परिभाषित की गई है।
'dequeue_elem' नामक एक मेथड सूची से तत्वों को हटाने के लिए परिभाषित की गई है।
'Queue_struct' क्लास का एक ऑब्जेक्ट बनाया जाता है।
उपयोगकर्ता इनपुट लिया जाता है कि कौन सा ऑपरेशन करना है।
उपयोगकर्ता की पसंद के आधार पर, ऑपरेशन किया जाता है।
प्रासंगिक आउटपुट कंसोल पर प्रदर्शित होता है।
प्रदर्शन नोट
उपरोक्त कार्यान्वयन list.pop(0) का उपयोग करता है जो O(n) समय लेता है क्योंकि सभी तत्वों को शिफ्ट करना पड़ता है। बड़े क्यू के लिए, collections.deque का उपयोग करें जो O(1) एनक्यू और डीक्यू प्रदान करता है।
कुशल कार्यान्वयन deque के साथ
from collections import deque
class Queue_struct:
def __init__(self):
self.items = deque()
def check_empty(self):
return len(self.items) == 0
def enqueue_elem(self, data):
self.items.append(data)
def dequeue_elem(self):
return self.items.popleft()
अतिरिक्त उपयोगी मेथड्स
size()- क्यू का आकार लौटाता हैpeek()याfront()- बिना हटाए पहला तत्व लौटाता हैrear()- अंतिम तत्व लौटाता है