अजगर कतार क्या है?
एक कतार एक कंटेनर है जो डेटा रखता है। पहले दर्ज किया गया डेटा पहले हटा दिया जाएगा, और इसलिए एक कतार को "फर्स्ट इन फर्स्ट आउट" (FIFO) भी कहा जाता है। कतार के दो छोर सामने और पीछे हैं। आइटम पीछे से दर्ज किए गए हैं और सामने की तरफ से हटा दिए गए हैं।
इस पायथन ट्यूटोरियल में, आप सीखेंगे:
- अजगर कतार क्या है?
- अजगर कतार कैसे काम करता है?
- अजगर में कतार के प्रकार
- अजगर कतार स्थापना
- कतार और आजीवन वर्ग के अंदर उपलब्ध तरीके
- पहला फर्स्ट आउट कतार उदाहरण में
- अंतिम पहली कतार के उदाहरण में
- एक कतार में 1 से अधिक आइटम जोड़ें
- छँटाई कतार
- कतार को उलट देना
अजगर कतार कैसे काम करता है?
वास्तविक दुनिया उदाहरण के साथ कतार की तुलना आसानी से की जा सकती है उदाहरण के लिए टिकट काउंटर पर कतार में इंतजार कर रहे लोगों की कतार पहले खड़े व्यक्ति को पहले टिकट मिलेगी, उसके बाद अगले व्यक्ति और इसी तरह। यही तर्क कतार डेटा संरचना के लिए भी जाता है।
यहाँ कतार का एक आरेखीय प्रतिनिधित्व है:
रियर बिंदु है जहां आइटम कतार अंदर डाला जाता है प्रतिनिधित्व करता है। इस उदाहरण में, 7 उस के लिए मूल्य है।
मोर्चा बिंदु है जहां कतार से आइटम को हटा दिया जाएगा प्रतिनिधित्व करता है। यदि आप कतार से कोई आइटम निकालते हैं, तो आपको पहला तत्व 1 मिलेगा, जैसा कि चित्र में दिखाया गया है।
आइटम 1 कतार में डाला जाने वाला पहला वाला था, और इसे हटाते समय बाहर आने वाला पहला व्यक्ति था। इसलिए कतार को पहले (FIFO) में पहले कहा जाता है
एक कतार में, आइटम क्रम में हटा दिए जाते हैं और बीच से हटाया नहीं जा सकता। आप केवल आइटम 5 को कतार से बेतरतीब ढंग से नहीं निकाल सकते हैं, ऐसा करने के लिए आपको 5. से पहले सभी वस्तुओं को निकालना होगा। कतार में आइटमों को उस क्रम में हटा दिया जाएगा जो उन्हें डाला जाता है।
अजगर में कतार के प्रकार
अजगर में मुख्य रूप से दो प्रकार की कतार होती हैं:
- सबसे पहले बाहर कतार में: इसके लिए, जो तत्व पहले जाएगा वह सबसे पहले बाहर आएगा।
FIFO के साथ काम करने के लिए, आपको क्यू मॉड्यूल से क्यू () वर्ग को कॉल करना होगा।
- सबसे पहले बाहर कतार में अंतिम: यहाँ पर, जो तत्व अंतिम रूप से दर्ज किया गया है वह बाहर आने वाला पहला होगा।
LIFO के साथ काम करने के लिए, आपको कतार मॉड्यूल से LifoQueue () वर्ग को कॉल करना होगा।
अजगर कतार स्थापना
अजगर में कतार के साथ काम करना बहुत आसान है। अपने कोड में कतार का उपयोग करने के लिए निम्नलिखित चरण दिए गए हैं।
चरण 1) आपको बस कतार मॉड्यूल आयात करना होगा, जैसा कि नीचे दिखाया गया है:
import queue
मॉड्यूल डिफ़ॉल्ट रूप से अजगर के साथ उपलब्ध है, और कतार के साथ काम करना शुरू करने के लिए आपको किसी भी अतिरिक्त स्थापना की आवश्यकता नहीं है। 2 प्रकार की कतार FIFO (पहली बार पहली बार) और LIFO (पहली बाहर आखिरी) हैं।
चरण 2) एफआईएफओ कतार के साथ काम करने के लिए, कतार मॉड्यूल का उपयोग करके कतार वर्ग को कॉल करें जो नीचे दिखाया गया है:
import queueq1 = queue.Queue()
चरण 3) LIFO कतार के साथ काम करने के लिए LifoQueue () वर्ग को नीचे दिखाए अनुसार:
import queueq1 = queue.LifoQueue()
कतार और आजीवन वर्ग के अंदर उपलब्ध तरीके
कतार और जीवन रेखा वर्ग के अंदर उपलब्ध महत्वपूर्ण विधियाँ निम्नलिखित हैं:
- put (आइटम): यह आइटम को कतार के अंदर रखेगा।
- get (): यह आपको कतार से एक आइटम लौटाएगा।
- खाली (): यह सच है अगर कतार खाली और झूठी है अगर आइटम मौजूद हैं।
- qsize (): कतार का आकार लौटाता है।
- पूर्ण (): यदि कतार पूर्ण है, तो सत्य है, अन्यथा असत्य है।
पहला फर्स्ट आउट कतार उदाहरण में
पहले आउट में पहले के मामले में, जो तत्व पहले जाता है वह सबसे पहले बाहर आएगा।
एक कतार में जोड़ें और आइटम करें
आइए हम एक कतार में एक आइटम जोड़ने के लिए एक उदाहरण पर काम करते हैं। कतार से काम शुरू करने के लिए, पहले मॉड्यूल कतार को आयात करें, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है।
एक आइटम जोड़ने के लिए, आप पुट () विधि का उपयोग कर सकते हैं जैसा कि उदाहरण में दिखाया गया है:
import queueq1 = queue.Queue()q1.put(10) #this will additem 10 to the queue.
डिफ़ॉल्ट रूप से, कतार का आकार अनंत है और आप इसमें किसी भी संख्या में आइटम जोड़ सकते हैं। यदि आप कतार के आकार को परिभाषित करना चाहते हैं तो निम्नानुसार किया जा सकता है
import queueq1 = queue.Queue(5) #The max size is 5.q1.put(1)q1.put(2)q1.put(3)q1.put(4)q1.put(5)print(q1.full()) # will return true.
आउटपुट:
True
अब कतार का आकार 5 है, और यह 5 से अधिक आइटम नहीं लेगा, और विधि q1.full () सही वापस आ जाएगी। किसी भी अधिक आइटम को जोड़ने से कोड को आगे निष्पादित नहीं किया जाएगा।
किसी आइटम को कतार से निकालें
किसी आइटम को कतार से हटाने के लिए, आप प्राप्त विधि () का उपयोग कर सकते हैं। यह विधि कतार से आइटम को कॉल करने की अनुमति देती है।
निम्न उदाहरण दिखाता है कि कतार से किसी आइटम को कैसे निकालना है।
import queueq1 = queue.Queue()q1.put(10)item1 = q1.get()print('The item removed from the queue is ', item1)
आउटपुट:
The item removed from the queue is 10
अंतिम पहली कतार के उदाहरण में
पहले आउट कतार में अंतिम के मामले में, अंतिम दर्ज किया गया तत्व बाहर आने वाला पहला होगा।
LIFO के साथ काम करने के लिए, यानी, पहली पहली कतार में, हमें कतार मॉड्यूल को आयात करने और LifoQueue () विधि का उपयोग करने की आवश्यकता है।
एक कतार में जोड़ें और आइटम करें
यहां हम समझेंगे कि लिफो कतार में किसी आइटम को कैसे जोड़ा जाए।
import queueq1 = queue.LifoQueue()q1.put(10)
आपको LifoQueue पर पुट () विधि का उपयोग करना होगा, जैसा कि ऊपर दिए गए उदाहरण में दिखाया गया है।
किसी आइटम को कतार से निकालें
LIFOqueue से किसी आइटम को निकालने के लिए आप प्राप्त () विधि का उपयोग कर सकते हैं।
import queueq1 = queue.LifoQueue()q1.put(10)item1 = q1.get()print('The item removed from the LIFO queue is ', item1)
आउटपुट:
The item removed from the LIFO queue is 10
एक कतार में 1 से अधिक आइटम जोड़ें
उपरोक्त उदाहरणों में, हमने देखा है कि किसी एक आइटम को कैसे जोड़ा जाए और FIFO और LIFOqueue के लिए आइटम को हटाया जाए। अब हम देखेंगे कि एक से अधिक आइटम कैसे जोड़ें और इसे भी हटा दें।
FIFOqueue में जोड़ें और आइटम करें
import queueq1 = queue.Queue()for i in range(20):q1.put(i) # this will additem from 0 to 20 to the queue
FIFOqueue से कोई आइटम निकालें
import queueq1 = queue.Queue()for i in range(20):q1.put(i) # this will additem from 0 to 20 to the queuewhile not q1.empty():print("The value is ", q1.get()) # get() will remove the item from the queue.
आउटपुट:
The value is 0The value is 1The value is 2The value is 3The value is 4The value is 5The value is 6The value is 7The value is 8The value is 9The value is 10The value is 11The value is 12The value is 13The value is 14The value is 15The value is 16The value is 17The value is 18The value is 19
LIFOqueue में जोड़ें और आइटम करें
import queueq1 = queue.LifoQueue()for i in range(20):q1.put(i) # this will additem from 0 to 20 to the queue
LIFOqueue से कोई आइटम निकालें
import queueq1 = queue.LifoQueue()for i in range(20):q1.put(i) # this will additem from 0 to 20 to the queuewhile not q1.empty():print("The value is ", q1.get()) # get() will remove the item from the queue.
आउटपुट:
The value is 19The value is 18The value is 17The value is 16The value is 15The value is 14The value is 13The value is 12The value is 11The value is 10The value is 9The value is 8The value is 7The value is 6The value is 5The value is 4The value is 3The value is 2The value is 1The value is 0
छँटाई कतार
निम्नलिखित उदाहरण कतार की छँटाई को दर्शाता है। छँटाई के लिए उपयोग किया जाने वाला एल्गोरिथ्म बबल सॉर्ट है।
import queueq1 = queue.Queue()#Addingitems to the queueq1.put(11)q1.put(5)q1.put(4)q1.put(21)q1.put(3)q1.put(10)#using bubble sort on the queuen = q1.qsize()for i in range(n):x = q1.get() # the element is removedfor j in range(n-1):y = q1.get() # the element is removedif x> y :q1.put(y) #the smaller one is put at the start of the queueelse:q1.put(x) # the smaller one is put at the start of the queuex = y # the greater one is replaced with x and compared again with nextelementq1.put(x)while (q1.empty() == False):print(q1.queue[0], end = " ")q1.get()
आउटपुट:
3 4 5 10 11 21
कतार को उलट देना
कतार को उलटने के लिए, आप दूसरी कतार और पुनरावृत्ति का उपयोग कर सकते हैं।
निम्नलिखित उदाहरण से पता चलता है कि कतार को उलटा कैसे लाया जाए।
उदाहरण:
import queueq1 = queue.Queue()q1.put(11)q1.put(5)q1.put(4)q1.put(21)q1.put(3)q1.put(10)def reverseQueue (q1src, q2dest) :buffer = q1src.get()if (q1src.empty() == False) :reverseQueue(q1src, q2dest) #using recursionq2dest.put(buffer)return q2destq2dest = queue.Queue()qReversed = reverseQueue(q1,q2dest)while (qReversed.empty() == False):print(qReversed.queue[0], end = " ")qReversed.get()
आउटपुट:
10 3 21 4 5 11
सारांश:
- एक कतार एक कंटेनर है जो डेटा रखता है। कतार, FIFO और LIFO दो प्रकार के होते हैं।
- एक फीफो (फर्स्ट इन फर्स्ट क्यू) के लिए, जो तत्व पहले जाता है वह सबसे पहले बाहर आएगा।
- एक LIFO के लिए (पिछले बाहर कतार में), जो तत्व अंतिम रूप से दर्ज किया गया है वह बाहर आने वाला पहला होगा।
- पुट (आइटम) विधि का उपयोग करके एक कतार में एक आइटम जोड़ा जाता है।
- किसी आइटम को निकालने के लिए, () विधि का उपयोग किया जाता है।