Queue एक Linear Data Structure है । Stack और Queue में केवल यह अन्तर है कि Queue में दोनों सिरे खुली होती है एक सिरे से Data Insert होता है जिसे Rear कहा जाता दे और दूसरी सिरे से Delete होता है उसे Front कहा जाता है।
यह FIFO (First in first out) पर कार्य करता है इसे हम कुछ इस तरह समझते है कि जब हम जैसे रेलवे या अन्य किसी की लाइन में कुछ टिकट लेने या कुछ खरीदने के लिए लगते है तो जो लाइन में पहले लगेगा उसे वह वस्तु या टिकट पहले मिलेगा जो अन्तिम में आयेगा उसे बाद में मिलेगा । वही Queue में होता है पहले Insert किया गया Elements को पहले Queue से Delete किया जाता है। एक Element को Queue में Insert करने की प्रक्रिया को enqueue कहा जाता है और एक Element को Queue से Delete करने की प्रक्रिया को Dequeue कहा जाता है।
Types Of Queue ~ क्यू के प्रकार
क्यू चार प्रकार के होते है-
- Simple Queue
- Circular Queue
- Priority Oueue
- Dequeue
1 – Simple Queue – इसमें, Insertion को एक End से किया जाता है और दूसरे End से Deletion किया जाता है । वह End जहाँ से Insertion किया जाता है उसे Rear End कहते है और वह End जहाँ से Deletion करते है उसे Front End कहते है ।
2 – Circular Queue – इसमें, सभी Nodes को Circle के रूप में प्रस्तुत किया जाता है. इसमें Last Element पहले Element के साथ जुडा रहता है इसे Ring Buffer भी कहते है । Circular Queue में Item को Rear End से Add किया जाता है तथा Item को Front End से Remove किया जाता है।
3 – Priority Queue – यह एक विशेष प्रकार का Queue होता है जिसमें प्रत्येक Element के साथ एक Priority (प्राथमिकता) जुडी रहती है और यह उसी Priority के आधार पर कार्य करता है । इसमें जिस Element की Priority सबसे कम होती है उसे सबसे पहले Remove किया जाता है और यदि Elements की Priority समान होती है तो तब FIFO सिद्धांत के आधार पर Elements को Arrange किया जाता है ।
4 – Dequeue – Dequeue का पूरा नाम double-ended queue है। Dequeue एक ऐसा डेटा स्ट्रक्चर है जिसमें हम items को Front तथा Rear End दोनों से Add भी कर सकते है और Remove भी कर सकते है।
Queue में perform किये जाने वाले operations निम्नलिखित हैं:-
- Enqueue – जब हम Queue में किसी Item या Element को Add करते हैं तो उस ऑपरेशन को enqueue कहते है ।
- Dequeue – जब हम Queue में से किसी Item को Delete कर देते हैं तो उसे ऑपरेशन को dequeue कहते हैं.
- Peek – इस ऑपरेशन का प्रयोग Queue के Front Element को प्राप्त करने के लिए किया जाता है और इसमें Element को Delete नहीं किया जाता है ।
- isEmpty – इसका प्रयोग यह Check करने के लिए किया जाता है कि Queue खाली है या नहीं. जब Queue खाली होता है तो वह Underflow Condition को Throw करता है ।
- isFull – इसका प्रयोग यह Check करने के लिए किया जाता है कि Queue पूरी तरह से Full है या नहीं. जब Queue पूरी तरह से Full होता है तो यह Overflow Condition को Throw करता है ।
Features Of Queue ~ क्यू की विशेषताएं
- Stack की तरह Queue भी एक समान Data Type की Ordered List है।
- Queue एक FIFO (First in first out) Structure है।
- Queue में किसी नए Element को Remove करने के लिए हमें उससे पहले Insert किये गये सभी Elements को Remove करना पड़ेगा ।
- इसमें peek() Function का प्रयोग First Element की Value को Return करने के लिए किया जाता है ।
Application Of Queue ~ क्यू के अनुप्रयोग
- Oueue का प्रयोग CPU Scheduling और Disk Scheduling में किया जाता है ।
- इसका प्रयोग Data को Asynchronous तरीके से Transfer करने के लिए किया जाता है ।
- प्रिन्ट स्पूलिंग में इसका उपयोग किया जाता है।
- ग्राफ में, BFS (Breadth first search) में इसका उपयोग किया जाता है ।
- वास्तविक जीवन में रेलवे टिकट लेने में किया जाता है।