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

पायथन में क्यू (Queue) लागू करना


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

उदाहरण

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() - अंतिम तत्व लौटाता है


  1. - पायथन में strStr() लागू करें

    मान लीजिए हमारे पास दो स्ट्रिंग्स str और sub_str हैं। हमें str में sub_str की पहली घटना ढूंढनी है। यदि स्ट्रिंग str helloworld है, और उपस्ट्रिंग lo है, तो परिणाम 3 होगा। यह C में strstr() फंक्शन का उपयोग करके किया जा सकता है। हमें C में strstr() के समान एक और फंक्शन डिजाइन करना है। हल करने के चरण

  1. - Python प्रोग्राम में callable() फ़ंक्शन

    इस ट्यूटोरियल में, हम अंतर्निहित विधि callable() पर चर्चा करने जा रहे हैं। यह एक आर्गुमेंट लेता है और लौटाता है कि आर्गुमेंट कॉल करने योग्य है या नहीं। यदि आप कोई फ़ंक्शन या क्लास लेते हैं, तो वे कॉल करने योग्य हैं। इंटीजर, फ्लोट, स्ट्रिंग आदि जैसे स्थिरांक कॉल करने योग्य नहीं हैं। उदाहरण आइए कुछ उ

  1. - पायथन प्रोग्राम रॉक पेपर कैंची गेम लागू करने के लिए

    पायथन का उपयोग करके हम बहुत दिलचस्प गेम भी विकसित कर सकते हैं। रॉक पेपर कैंची गेम उनमें से एक है। यहाँ हम रैंडम नंबर उत्पन्न करने के लिए randint() फ़ंक्शन का उपयोग करते हैं। इस खेल में खिलाड़ी आमतौर पर तीन तक गिनने की अनुमति देते हैं, या खेल का नाम बोलते हैं, प्रत्येक बार या तो एक हाथ को मुट्ठी में