हमारी कक्षा में निम्नलिखित कार्य होंगे -
- एनक्यू (तत्व):कतार में एक तत्व जोड़ने का कार्य।
- dequeue():फ़ंक्शन जो कतार से एक तत्व को हटा देता है।
- पीक ():कतार के सामने से तत्व लौटाता है।
- isFull():जाँचता है कि क्या हम क्यू में एलिमेंट लिमिट तक पहुँच गए हैं।
- isEmpty():जांचता है कि कतार खाली है या नहीं।
- clear():सभी तत्वों को हटा दें।
- प्रदर्शन ():सरणी की सभी सामग्री प्रदर्शित करें
आइए एक कंस्ट्रक्टर के साथ एक साधारण वर्ग को परिभाषित करके शुरू करें जो कतार का अधिकतम आकार लेता है और एक सहायक फ़ंक्शन जो इस वर्ग के अन्य कार्यों को लागू करते समय हमारी मदद करेगा। हमें प्रायोरिटी क्यू क्लास प्रोटोटाइप के हिस्से के रूप में एक अन्य संरचना को भी परिभाषित करना होगा जिसमें प्रत्येक नोड के बारे में प्राथमिकता और डेटा होगा। जैसे ही हमने स्टैक लागू किया, हम Arrays का उपयोग करके भी प्राथमिकता कतार को लागू करेंगे।
उदाहरण
क्लास प्रायोरिटीक्यू {कन्स्ट्रक्टर (मैक्ससाइज़) {// डिफ़ॉल्ट अधिकतम आकार सेट करें यदि प्रदान नहीं किया गया है यदि (isNaN(maxSize)) {maxSize =10; } यह। अधिकतम आकार =अधिकतम आकार; // एक सरणी शुरू करें जिसमें कतार मान होंगे। यह कंटेनर =[]; ) } // जाँचता है कि क्या कतार खाली है खाली है () { इसे लौटाएँ। कंटेनर। लंबाई ===0; } // जांचता है कि क्या कतार भरी हुई है isFull() { इसे लौटाएं। कंटेनर। लंबाई> =यह। अधिकतम आकार; }}// एक आंतरिक वर्ग बनाएं जिसका उपयोग हम कतार में नए नोड बनाने के लिए करेंगे // प्रत्येक तत्व में कुछ डेटा और एक प्राथमिकता होती हैPriorityQueue.prototype.Element =वर्ग { निर्माता (डेटा, प्राथमिकता) { यह। डेटा =डेटा; यह प्राथमिकता =प्राथमिकता; }}पूर्व>हमने 2 और फ़ंक्शन भी परिभाषित किए हैं, isFull और isEmpty यह जांचने के लिए कि स्टैक भरा हुआ है या खाली है।
isFull फ़ंक्शन केवल यह जांचता है कि कंटेनर की लंबाई maxSize के बराबर या उससे अधिक है या नहीं और उसी के अनुसार वापस आती है।
isEmpty फ़ंक्शन जांचता है कि कंटेनर का आकार 0 है या नहीं।
जब हम अन्य संक्रियाओं को परिभाषित करते हैं तो ये सहायक होंगे। इस बिंदु से हम जिन कार्यों को परिभाषित करते हैं, वे सभी प्रायोरिटी क्यू वर्ग में जाएंगे।