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

पायथन में कतार क्या है? उदाहरण सहित समझाएं

क्यू एक रैखिक डेटा संरचना है जो फर्स्ट इन फर्स्ट आउट . पर काम करती है तंत्र (फीफो)।

कतार में सबसे पहले प्रवेश करने वाला तत्व संसाधित होने वाला पहला तत्व है।

उदाहरण

कतार डेटा संरचना को बस स्टैंड पर कतार की सहायता से समझा जा सकता है। जो व्यक्ति बस स्टैंड पर सबसे पहले पहुंचता है वह कतार में पहला व्यक्ति होता है और अन्य व्यक्ति बस स्टैंड पर पहुंचते ही उसे खड़ा कर देते हैं। बस के आने पर बस स्टैंड पर सबसे पहले पहुंचने वाला व्यक्ति बस में प्रवेश करने वाला पहला व्यक्ति होगा और बाकी लोग जिस क्रम में बस स्टैंड पहुंचे थे उसी क्रम में प्रवेश करेंगे। इस प्रकार, FIRST IN FIRST OUT तंत्र का पालन किया जाता है।

पायथन में कतार का कार्यान्वयन

पायथन में कतार को अन्य रैखिक डेटा संरचनाओं या पायथन लाइब्रेरी में इन-बिल्ट मॉड्यूल का उपयोग करके विभिन्न तरीकों से लागू किया जा सकता है।

विधि 1 - सूची का उपयोग करके कार्यान्वित करें

पायथन में कतार को सूची का उपयोग करके लागू किया जा सकता है। यह बहुत कुशल नहीं है क्योंकि सूची की शुरुआत में किसी तत्व को डालने या हटाने में O(n) समय लगता है जो अन्य तरीकों का उपयोग करने वाले कार्यान्वयन की तुलना में धीमा है।

ऑपरेशन शामिल

जोड़ें () - यह फ़ंक्शन कतार के अंत में एक तत्व जोड़ता है।

पॉप(0) - यह फ़ंक्शन कतार में पहले तत्व को हटाता है और वापस करता है।

उदाहरण

queue=[]queue.append(1)queue.append(2)queue.append(3)प्रिंट ("आरंभिक कतार", कतार) प्रिंट ("कतार से पॉप किया गया तत्व") प्रिंट (queue.pop( 0))प्रिंट(कतार.पॉप(0))प्रिंट ("कुछ तत्वों को पॉप करने के बाद कतार", कतार)

आउटपुट

आरंभिक कतार [1, 2, 3]कुछ तत्वों को पॉप करने के बाद क्यू से एलिमेंट पॉप किया गया12Queue [3]

कतार खाली होने के बाद आप अधिक तत्वों को नहीं हटा सकते। ऐसा करने से अपवाद होता है।

queue.pop(0)IndexError:खाली सूची से पॉप करें

विधि 2 - Queue.Queue का उपयोग करके कार्यान्वित करें

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

ऑपरेशन शामिल

अधिकतम आकार − एक कतार में अनुमत तत्वों की अधिकतम संख्या

प्राप्त करें () - कतार से पहला तत्व निकालें और वापस करें। यदि कतार खाली है, तब तक प्रतीक्षा करें जब तक कि कतार में कम से कम एक तत्व न हो।

get_nowait() - कतार से पहला तत्व निकालें और वापस करें। यदि कतार खाली है, तो अपवाद उठाएं।

डालें(आइटम) - कतार के अंत में एक तत्व संलग्न करें। यदि कतार भरी हुई है, तब तक प्रतीक्षा करें जब तक कि एक निःशुल्क स्लॉट उपलब्ध न हो जाए।

put_nowait(आइटम) - कतार के अंत में एक तत्व संलग्न करें। यदि कतार भरी हुई है, तो एक अपवाद उठाएं।

पूर्ण () - अगर कतार भरी हुई है तो सही है, अन्यथा झूठी वापसी करें।

खाली () - यदि कतार खाली है, तो सही है, अन्यथा गलत है

qsize () - कतार में मौजूद तत्वों की संख्या लौटाता है

उदाहरण

कतार आयात से Queueq=Queue(maxsize=3)q.put(1)q.put(2)q.put(3)print("Isqueue full",q.full())print("Element कतार से पॉप किया गया") प्रिंट (q.get ()) प्रिंट (q.get ()) प्रिंट ("कतार में तत्वों की संख्या", q.qsize ()) प्रिंट ("क्या कतार खाली है", q. खाली ( ))

आउटपुट

क्या क्यू पूर्ण है TrueElement क्यू से पॉप किया गया है12क्यू में तत्वों की संख्या 1कतार खाली है गलत है

विधि 3 - collections.deque का उपयोग करके कार्यान्वित करें

यह पायथन में एक कतार को लागू करने का एक और तरीका है। हमें संग्रह मॉड्यूल से डेक आयात करने की आवश्यकता है।

इसमें शामिल ऑपरेशन

जोड़ें () - यह फ़ंक्शन कतार के अंत में एक तत्व जोड़ता है।

पॉपलेफ्ट () - यह फ़ंक्शन O(1) समय जटिलता में कतार में पहले तत्व को हटाता है और लौटाता है।

उदाहरण

संग्रह से (queue.popleft())print(queue.popleft())print("कुछ तत्वों को पॉप करने के बाद कतार:",queue)

आउटपुट

प्रारंभिक कतार:deque([1, 2, 3])कुछ तत्वों को पॉप करने के बाद Queue12Queue से तत्व पॉप किया गया:deque([3])

एक खाली डेक पर पॉपलेफ्ट () फ़ंक्शन का उपयोग करने से एक अपवाद होगा।


  1. जावास्क्रिप्ट क्लोजर क्या है? उदाहरण सहित स्पष्ट कीजिए।

    जावास्क्रिप्ट में क्लोजर हमें बाहरी फ़ंक्शन के निष्पादित होने और वापस आने के बाद भी आंतरिक फ़ंक्शन से बाहरी फ़ंक्शन स्कोप तक पहुंचने की अनुमति देता है। इसका मतलब है कि आंतरिक फ़ंक्शन के पास हमेशा बाहरी फ़ंक्शन चर तक पहुंच होगी। जावास्क्रिप्ट में क्लोजर के लिए कोड निम्नलिखित है - उदाहरण दस्तावेज़ बॉ

  1. पायथन में किसी सूची में किसी तत्व की अनुक्रमणिका कैसे खोजें?

    सूची के लिए उपलब्ध अनुक्रमणिका() विधि (साथ ही अन्य अनुक्रम प्रकार जैसे कि स्ट्रिंग और टपल) इसमें किसी विशेष तत्व की पहली घटना को खोजने के लिए उपयोगी है। >>> L1=['a', 'b', 'c', 'a', 'x'] >>> L1 ['a', 'b', 'c', 'a

  1. पायथन में __init__.py क्या है?

    __init__.py फ़ाइलों की आवश्यकता होती है ताकि पायथन निर्देशिकाओं को पैकेज युक्त समझे; यह एक सामान्य नाम वाली निर्देशिकाओं को रोकने के लिए किया जाता है, जैसे कि स्ट्रिंग, अनजाने में वैध मॉड्यूल को छिपाने से जो बाद में मॉड्यूल खोज पथ पर होते हैं। सरलतम स्थिति में, __init__.py केवल एक खाली फ़ाइल हो सकती