C ++ में प्राथमिकता कतार कैसे लागू करें

यह आलेख आपको उदाहरणों के साथ C ++ में प्राथमिकता कतार को लागू करने के तरीके के बारे में विस्तृत और व्यापक ज्ञान प्रदान करेगा।

एक प्राथमिकता कतार एसटीएल में एक कंटेनर है। यह इस तथ्य को छोड़कर कतार के समान है कि प्राथमिकता कतार के प्रत्येक तत्व की कुछ प्राथमिकता होती है और जब हम प्राथमिकता कतार से तत्वों को पॉप करते हैं, तो सर्वोच्च प्राथमिकता वाले तत्व पहले पॉप होते हैं। प्राथमिकता कतार की तरह, इसमें 10 विभिन्न प्रकार के कंटेनर हैं एसटीएल । कंटेनर एक ऑब्जेक्ट है जो डेटा को स्टोर करता है। STL कंटेनरों को टेम्प्लेट वर्गों की मदद से कार्यान्वित किया जाता है इसलिए विभिन्न प्रकार के डेटा को रखने के लिए इसे अनुकूलित करना आसान है। इस पोस्ट में, हम प्राथमिकता कतार और उससे संबंधित अवधारणाओं पर विस्तार से चर्चा करेंगे। निम्नलिखित बिंदुओं को C ++ लेख में इस प्राथमिकता कतार में शामिल किया जाएगा,

C ++ में प्राथमिकता कतार पर इस लेख के साथ आगे बढ़ना





एसटीएल के घटक

STL में टेम्प्लेट क्लासेस और फ़ंक्शंस होते हैं जिनका उपयोग डेटा को संग्रहीत करने और संसाधित करने के लिए एक मानक दृष्टिकोण के रूप में किया जा सकता है। एसटीएल के घटकों पर चर्चा करें

कंटेनर- एसटीएल में 10 प्रकार के कंटेनर परिभाषित किए गए हैं और इन्हें 3 श्रेणियों में बांटा गया है। इन 3 में से, प्राथमिकता कतार व्युत्पन्न कंटेनर की श्रेणी से संबंधित है। प्रत्येक कंटेनर वर्ग का अपना कार्य सेट होता है जिसका उपयोग डेटा को हेरफेर करने के लिए किया जा सकता है।



कलन विधि - एक एल्गोरिथ्म एक विधि है जिसका उपयोग कंटेनर ऑब्जेक्ट में मौजूद डेटा को संसाधित करने के लिए किया जाता है। एसटीएल कई अलग-अलग प्रकार के एल्गोरिदम प्रदान करता है जिनका उपयोग इनिशियलाइज़िंग, सर्चिंग, सॉर्टिंग, मर्जिंग, कॉपी में किया जा सकता है। टेम्पलेट फ़ंक्शन की मदद से एल्गोरिदम लागू किया जाता है।

सूत्रधार- एक पुनरावृत्ति एक वस्तु है जो कंटेनर में एक तत्व की ओर इंगित करता है। Iterators कंटेनर की सामग्री के माध्यम से आगे बढ़ने में उपयोग करने में मदद कर सकते हैं। इटरेटर पॉइंटर्स की तरह होते हैं जिन्हें बढ़ाया और घटाया जा सकता है। यह एल्गोरिथ्म और कंटेनर के बीच एक कड़ी के रूप में कार्य करता है। एक कंटेनर में संग्रहीत डेटा में हेरफेर के लिए Iterators का उपयोग किया जाता है।

C ++ में प्राथमिकता कतार पर इस लेख के साथ आगे बढ़ना



हीप्स और प्राथमिकता कतार

जैसा कि हमने पहले देखा कि प्राथमिकता कतार व्युत्पन्न कंटेनरों की श्रेणी से संबंधित है। इस श्रेणी के अन्य सदस्य स्टैक और कतार हैं। इन व्युत्पन्न कंटेनरों को कंटेनर एडेप्टर के रूप में भी जाना जाता है।

स्टैक, कतार और प्राथमिकता कतार को व्युत्पन्न कंटेनरों के रूप में जाना जाता है क्योंकि वे विभिन्न अनुक्रम कंटेनरों से बने होते हैं। ये कंटेनर किसी भी प्रकार के पुनरावृत्तियों का समर्थन नहीं करते हैं, जिनका उपयोग डेटा हेरफेर के लिए नहीं किया जाता है।

वास्तव में प्राथमिकता कतार क्या है?

सरल शब्दों में, यह एक कंटेनर है जिसका उपयोग हम डेटा स्टोर करने के लिए करते हैं। संग्रहीत डेटा के प्रत्येक तत्व को कुछ प्राथमिकता दी गई है जो तार्किक क्रम में डेटा को संग्रहीत करने में हमारी मदद कर सकता है।
वाक्य - विन्यास:प्रायोरिटी_क्यूवे वेरिएबल_नाम

प्राथमिकता कतार का उपयोग करने के लिए प्रोग्राम में हेडर फ़ाइल शामिल करना महत्वपूर्ण है।

c ++ में प्राथमिकता कतारउदाहरण के लिए, यदि हम पुश फ़ंक्शन का उपयोग करके अपनी प्राथमिकता कतार में 2, 10, 30, 5, 6 जोड़ते हैं और फिर पॉप फ़ंक्शन का उपयोग करने वाले तत्वों का उत्पादन 30, 10, 6, 5, 2 होगा।

ठीक है, इसलिए अब हम उद्देश्य या प्राथमिकता कतार के उपयोग को जानते हैं। लेकिन यह कैसे पता चला अगर 30> 10? क्या यह किसी प्रकार की छँटाई कर रहा है? इस बिंदु पर हीप्स चित्र में आते हैं। ढेर के बारे में विस्तार से जानने के लिए इस लेख को देखें।

हीप्स- हीप्स पेड़ जैसी संरचनाएं हैं। माता-पिता नोड्स के संबंध में ढेर में बाल तत्व नोड्स को कैसे व्यवस्थित किया जाता है, इसके आधार पर, ढेर 2 भागों में विभाजित होते हैं

एक। मिन हीप- मिन हीप में, मूल नोड का मूल्य बच्चे के नोड्स के मूल्य से कम या बराबर है।

२। मैक्स हीप- मैक्स हीप में, मूल नोड का मूल्य बच्चे के नोड्स के मूल्य से अधिक या उसके बराबर है।

ध्यान दें- प्राथमिकता कतार कुछ छँटाई एल्गोरिथ्म का उपयोग करने वाले तत्वों को क्रमबद्ध नहीं करती है, क्योंकि यह डेटा को ढेर के रूप में संग्रहीत करता है।

C ++ में प्राथमिकता कतार पर इस लेख के साथ आगे बढ़ना

प्राथमिकता कतार के सभी तत्वों को प्रिंट करना

प्राथमिकता कतार की बुनियादी बातों को समझने के बाद, कार्यक्रमों को प्राथमिकता कतार के साथ सबसे अधिक उपयोग किए जाने वाले तरीकों को समझने के लिए लागू करें

सेलेनियम में डेटा संचालित रूपरेखा
#include #include namepace std int main () {प्रायोरिटी_क्यू_प्रेर_क्यू_प्रश। (10) प्रायर_क्यू.पश (३०) प्रायर_क्यू.पश (६) प्रायर_क्यू.पश (२) प्रायर_क्यू.पश (१५) प्रायर_क्यू.पश (९)। प्रायर_क्यू.पश (7) जबकि (प्रायर_क्यू। खाली () == गलत) {कॉट<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

आउटपुट:

३० १५ १० ९ ६ २

उपरोक्त कार्यक्रम में, हमने पॉप (), शीर्ष () और पुश () फ़ंक्शन का उपयोग किया है जो प्राथमिकता कतार से निपटने के दौरान सबसे अधिक बार उपयोग किए जाते हैं। आइए हम उन कुछ विधियों पर एक नज़र डालें जिन्हें हम प्राथमिकता कतार के साथ उपयोग कर सकते हैं

आकार (): यह फ़ंक्शन प्राथमिकता कतार का आकार लौटाता है

खाली (): इस फ़ंक्शन का उपयोग यह जांचने के लिए किया जाता है कि प्राथमिकता कतार खाली है या नहीं। यह प्राथमिकता की सही है कि कतार खाली है।

धक्का दें( ): प्राथमिकता कतार में एक तत्व सम्मिलित करता है।

पॉप (): यह फ़ंक्शन प्राथमिकता कतार के शीर्ष तत्व को निकालता है जो सर्वोच्च प्राथमिकता वाला तत्व है।

स्वैप (): यह फ़ंक्शन प्राथमिकता कतार के तत्वों को एक और प्राथमिकता कतार के साथ स्वैप करता है। फ़ंक्शन पैरामीटर के रूप में प्राथमिकता कतार लेता है।

emplace (): यह फ़ंक्शन प्राथमिकता कतार के शीर्ष पर एक तत्व जोड़ने के लिए उपयोग किया जाता है।

एक और कार्यक्रम पर नजर डालते हैं।

#include #include namepace std int main () {प्रायोरिटी_क्यू_प्रेर_क्यू_प्रश। (10) प्रायर_क्यू.पश (३०) प्रायर_क्यू.पश (६) प्रायर_क्यू.पश (२) प्रायर_क्यू.पश (१५) प्रायर_क्यू.पश (९)। प्रायर_क्यू.पश (7) जबकि (प्रायर_क्यू। खाली () == गलत) {कॉट<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

आउटपुट:

२ ६ 15 ९ १० १५ ३०

इसके साथ, हम C ++ लेख में इस प्राथमिकता कतार के अंत में आते हैं। आप और अधिक जानने के लिए चाहते हैं, तो बाहर की जाँच करें Edureka, एक विश्वसनीय ऑनलाइन शिक्षण कंपनी है। एडुर्का के जावा जे 2 ईई और एसओए प्रशिक्षण और प्रमाणन पाठ्यक्रम आपको हाइबरनेट और स्प्रिंग जैसे विभिन्न जावा फ्रेमवर्क के साथ कोर और उन्नत जावा अवधारणाओं दोनों के लिए प्रशिक्षित करने के लिए डिज़ाइन किया गया है।

क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? कृपया इस ब्लॉग के टिप्पणी अनुभाग में इसका उल्लेख करें और हम जल्द से जल्द आपके पास वापस आ जाएंगे।