PriorityQueue में एलिमेंट्स एनकीयू करने का अर्थ है उन्हें एलिमेंट की प्राथमिकता के क्रम में एरे में जोड़ना। हम उच्च संख्याओं को उच्च प्राथमिकता मानेंगे। हम कंटेनर के माध्यम से तब तक लूप करेंगे जब तक हमें कम प्राथमिकता न मिल जाए और फिर वहां एलिमेंट जोड़ दें। यदि नहीं, तो हम इसे कंटेनर के अंत में पुश कर देंगे।
ध्यान दें कि हम डेटा और प्राथमिकता के साथ एलिमेंट ऑब्जेक्ट बना रहे हैं। इसलिए हम एनकीयू फ़ंक्शन को इस प्रकार लागू कर सकते हैं:
उदाहरण
enqueue(data, priority) { // जांचें कि क्यू भरा हुआ है या नहीं if (this.isFull()) { console.log("Queue Overflow!"); return; } let currElem = new this.Element(data, priority); let addedFlag = false; // चूंकि हम एलिमेंट्स को अंत में जोड़ना चाहते हैं, हम बस उन्हें पुश करेंगे। for(let i = 0; i < this.container.length; i ++) { if(currElem.priority < this.container[i].priority) { this.container.splice(i, 0, currElem); addedFlag = true; break; } } if (!addedFlag) { this.container.push(currElem); } }
आप जांच सकते हैं कि यह फ़ंक्शन ठीक काम कर रहा है या नहीं:
उदाहरण
let q = new PriorityQueue(4); q.enqueue("Hello", 3); q.enqueue("World", 2); q.enqueue("Foo", 8); q.display();
आउटपुट
यह आउटपुट देगा:
[ { data: 'World', priority: 2 }, { data: 'Hello', priority: 3 }, { data: 'Foo', priority: 8 } ]
जैसा कि आप देख सकते हैं एलिमेंट्स सॉर्टेड क्रम में हैं। एनकीयू फ़ंक्शन इन्सर्शन सॉर्ट के इन्सर्शन्स की तरह काम करता है।