circular queue in data structure in hindi, circular queue in hindi, circular queue kya hai,
- circular queue in data structure in hindi,
- Insertion in Circular queue in Hindi,
- Algorithm to insert an element in circular queue,
- C Function,
- Algorithm to delete an element from a circular queue,
Circular Queue in Data Structure in Hindi
जहां तक linear queue की बात है, तो Deletion और insertion को क्रमश front और rear end में किया जा सकता है।
निम्नलिखित आकृति में दिखाए गए queue पर विचार करें।
उपरोक्त आकृति में दर्शाई गई कतार (queue) पूरी तरह से भरी हुई है और rear condition होने के कारण कोई और element नहीं डाला जा सकता है ==max – 1 becomes true.
हालांकि, यदि हम कतार के सामने के छोर पर 2 elements को हटाते हैं, तो हम अभी भी किसी भी element को नहीं डाल सकते हैं क्योंकि condition rear = -1 max -1 still holds
यह linear queue के साथ मुख्य समस्या है, हालांकि हमारे पास array में space उपलब्ध है, लेकिन हम कतार में कोई और element नहीं डाल सकते हैं। यह केवल memory wastage है और हमें इस समस्या को दूर करने की आवश्यकता है।
इस समस्या के समाधान में से एक circular queue है। circular queue में, पहला index आखिरी index के ठीक बाद आता है।
Circular queue पूर्ण होगी जब front = -1 और rear = max-1. Circular queue का कार्यान्वयन (implementation) एक linear queue के समान है। insertion और deletion के मामले में लागू किया गया केवल logic वाला भाग एक linear queue में इससे भिन्न होता है।
Complexity
Time Complexity
Front | O(1) |
Rear | O(1) |
enQueue() | O(1) |
deQueue() | O(1) |
Insertion in Circular queue in Hindi
एक कतार में एक तत्व insert करने के तीन scenario हैं।
- If (rear + 1)%maxsize = front, कतार भरी हुई है। उस स्थिति में, overflow होता है और इसलिए, insertion कतार में नहीं किया जा सकता है।
- If rear != max – 1, तो rear को mod(maxsize) में बढ़ाया जाएगा और नया value कतार के पीछे अंत में डाला जाएगा।
- If front != 0 and rear = max – 1, तो इसका मतलब है कि कतार पूरी नहीं भरी है इसलिए, पीछे के मान (value) को 0 पर सेट करें और वहां नया element डालें।
Algorithm to insert an element in circular queue
- Step 1: IF (REAR+1)%MAX = FRONT
Write ” OVERFLOW “
Goto step 4
[End OF IF] - Step 2: IF FRONT = -1 and REAR = -1
SET FRONT = REAR = 0
ELSE IF REAR = MAX – 1 and FRONT ! = 0
SET REAR = 0
ELSE
SET REAR = (REAR + 1) % MAX
[END OF IF] - Step 3: SET QUEUE[REAR] = VAL
- Step 4: EXIT
C Function
- void insert(int item, int queue[])
- {
- if((rear+1)%maxsize == front)
- {
- printf(“\nOVERFLOW”);
- return;
- }
- else if(front == –1 && rear == –1)
- {
- front = 0;
- rear = 0;
- }
- else if(rear == maxsize –1 && front != 0)
- {
- rear = 0;
- }
- else
- {
- rear = (rear+1)%maxsize;
- }
- queue[rear] = item;
- }