हमारे क्लास में निम्न फ़ंक्शन्स होंगे:
enqueue(element): क्यू में एक एलिमेंट जोड़ने का फ़ंक्शन।dequeue(): क्यू से एक एलिमेंट हटाने का फ़ंक्शन।peek(): क्यू के फ्रंट से एलिमेंट लौटाता है।isFull(): जांचता है कि क्या हम क्यू पर एलिमेंट लिमिट पर पहुंच गए हैं।isEmpty(): जांचता है कि क्यू खाली है या नहीं।clear(): सभी एलिमेंट्स हटाता है।display(): एरे की सभी सामग्री प्रदर्शित करता है।
आइए एक साधारण क्लास को परिभाषित करके शुरू करें जिसमें एक कंस्ट्रक्टर हो जो क्यू का अधिकतम आकार लेता है और एक हेल्पर फ़ंक्शन हो जो इस क्लास के लिए अन्य फ़ंक्शन्स को लागू करते समय हमारी मदद करेगा। हमें PriorityQueue क्लास प्रोटोटाइप के हिस्से के रूप में एक और स्ट्रक्चर भी परिभाषित करना होगा जिसमें प्रत्येक नोड के बारे में प्राथमिकता और डेटा होगा। जैसा कि हमने स्टैक्स लागू किए, हम प्रायोरिटी क्यू को भी एरे का उपयोग करके लागू करेंगे।
उदाहरण
class PriorityQueue { constructor(maxSize) { // यदि प्रदान नहीं किया गया तो डिफ़ॉल्ट अधिकतम आकार सेट करें if (isNaN(maxSize)) { maxSize = 10; } this.maxSize = maxSize; // एक एरे इनिशियलाइज़ करें जिसमें क्यू मान होंगे। this.container = []; } // विकसित करते समय सभी मानों को प्रदर्शित करने के लिए हेल्पर फ़ंक्शन display() { console.log(this.container); } // जांचें कि क्यू खाली है या नहीं isEmpty() { return this.container.length === 0; } // जांचें कि क्यू भरा हुआ है या नहीं isFull() { return this.container.length >= this.maxSize; } } // एक इनर क्लास बनाएं जिसका उपयोग हम क्यू में नए नोड्स बनाने के लिए करेंगे // प्रत्येक एलिमेंट में कुछ डेटा और एक प्रायोरिटी होती है PriorityQueue.prototype.Element = class { constructor (data, priority) { this.data = data; this.priority = priority; } }
हमने दो और फ़ंक्शन्स, isFull और isEmpty भी परिभाषित किए हैं ताकि यह जांचा जा सके कि स्टैक भरा हुआ है या खाली।
isFull फ़ंक्शन बस जांचता है कि कंटेनर की लंबाई maxSize के बराबर या अधिक है या नहीं और तदनुसार लौटाता है।
isEmpty फ़ंक्शन जांचता है कि कंटेनर का आकार 0 है या नहीं।
ये अन्य ऑपरेशन्स को परिभाषित करते समय मददगार होंगे। इस बिंदु से आगे हम जो फ़ंक्शन्स परिभाषित करेंगे वे सभी PriorityQueue क्लास के अंदर जाएंगे।