Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ में जोड़े की प्राथमिकता कतार (पहले द्वारा आदेशित)

प्राथमिकता कतार प्राथमिकता वाले तत्वों के संग्रह को संग्रहीत करने के लिए एक सार डेटा प्रकार है जो किसी तत्व को उनकी प्राथमिकताओं के आधार पर सम्मिलित करने और हटाने का समर्थन करता है, अर्थात, पहली प्राथमिकता वाले तत्व को किसी भी समय हटाया जा सकता है। प्राथमिकता कतार तत्वों को उनके स्थान जैसे स्टैक, कतार, सूची, आदि के संबंध में रैखिक फैशन में संग्रहीत नहीं करती है। प्राथमिकता कतार ADT (सार डेटा प्रकार) तत्वों को उनकी प्राथमिकताओं के आधार पर संग्रहीत करता है।

प्राथमिकता कतार निम्नलिखित कार्यों का समर्थन करती है -

आकार () - इसका उपयोग प्राथमिकता कतार के आकार की गणना करने के लिए किया जाता है क्योंकि यह इसमें तत्वों की संख्या लौटाता है।

खाली() - यदि प्राथमिकता कतार खाली है और गलत है तो यह सही है अन्यथा

सम्मिलित करें (तत्व) - नए तत्व को प्राथमिकता कतार में सम्मिलित करने के लिए उपयोग किया जाता है

न्यूनतम () - यह तत्व को सबसे छोटे संबद्ध कुंजी मान के साथ लौटाता है और प्राथमिकता कतार खाली होने पर त्रुटि संदेश प्रदर्शित करता है।

निकालें न्यूनतम () - यह न्यूनतम () फ़ंक्शन द्वारा संदर्भित तत्व को हटा देता है।

कार्य पहले द्वारा आदेशित C++ में जोड़े की प्राथमिकता कतार की अवधारणा को लागू करना है।

हम समस्या को ढेर के समान तरीके से हल कर सकते हैं, समस्या को हल करने के दो तरीके हैं

  • अधिकतम प्राथमिकता या अधिकतम ढेर
  • न्यूनतम प्राथमिकता या न्यूनतम ढेर

हीप एक वृक्ष संरचना है जिसमें नोड्स को एक विशिष्ट क्रम में व्यवस्थित किया जाता है। मिन हीप और मैक्स हीप दो प्रकार के होते हैं। मिन हीप में रूट नोड या पैरेंट नोड उसके चाइल्ड नोड से छोटा होता है, जबकि मैक्स हीप में रूट नोड या पैरेंट नोड उसके चाइल्ड नोड से बड़ा होता है।

उदाहरण

Input: priorityq.push(make_pair(18, 200))
Input: priorityq.push(make_pair(18, 200))
priorityq.push(make_pair(29, 100))
priorityq.push(make_pair(11, 400))
Output: 29 100

Input: priorityq.push(make_pair(10, 200))
priorityq.push(make_pair(20, 100))
priorityq.push(make_pair(19, 400))
Output: 20 100
Through Max priority (Max heap)

एल्गोरिदम

Start
Step 1-> In main function()
   Define priority_queue<pair<int, int> > priorityq
   Call priorityq.push(make_pair(18, 200))
   Call priorityq.push(make_pair(29, 100))
   Call priorityq.push(make_pair(11, 400))
   Set pair<int, int> top = priorityq.top()
   Print top.first and top.second
Stop

उदाहरण

#include <bits/stdc++.h>
using namespace std;
// main program
int main() {
   priority_queue<pair<int, int> > priorityq;
   priorityq.push(make_pair(18, 200));
   priorityq.push(make_pair(29, 100));
   priorityq.push(make_pair(11, 400));
   pair<int, int> top = priorityq.top();
   cout << top.first << " " << top.second;
   return 0;
}

आउटपुट

29 100

न्यूनतम प्राथमिकता (न्यूनतम ढेर) के माध्यम से

एल्गोरिदम

Start
Step 1-> In main function()
   Define priority_queue<pair<int, int> > priorityq
   Call pq.push(make_pair(10, 200))
   Call pq.push(make_pair(20, 100))
   Call pq.push(make_pair(15, 400))
   Set pair<int, int> top = pq.top()
   Print top.first and top.second
Stop

उदाहरण

#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> pi;
// main program
int main() {
   priority_queue<pi, vector<pi>, greater<pi> > pq;
   pq.push(make_pair(10, 200));
   pq.push(make_pair(20, 100));
   pq.push(make_pair(15, 400));
   pair<int, int> top = pq.top();
   cout << top.first << " " << top.second;
   return 0;
}

आउटपुट

10 200

  1. सी/सी++ में प्राथमिकता कतार परिचय

    एक प्राथमिकता कतार एक प्रकार की कतार है जिसमें तत्वों को उन्हें सौंपी गई प्राथमिकताओं के अनुसार डाला या हटा दिया जाता है जहां प्राथमिकता एक पूर्णांक मान है जो 0-10 के बीच हो सकता है जहां 0 तत्व को सर्वोच्च प्राथमिकता के साथ दिखाता है और 10 तत्व को दिखाता है सबसे कम प्राथमिकता। प्राथमिकता कतार को लाग

  1. सी ++ मानक टेम्पलेट लाइब्रेरी (एसटीएल) में प्राथमिकता कतार

    प्राथमिकता कतार प्राथमिकता वाले तत्वों के संग्रह को संग्रहीत करने के लिए एक सार डेटा प्रकार है जो किसी तत्व को उनकी प्राथमिकताओं के आधार पर सम्मिलित करने और हटाने का समर्थन करता है, अर्थात, पहली प्राथमिकता वाले तत्व को किसी भी समय हटाया जा सकता है। प्राथमिकता कतार तत्वों को उनके स्थान जैसे स्टैक, कत

  1. सी ++ में डबल लिंक्ड सूची का उपयोग कर प्राथमिकता कतार

    हमें डेटा और प्राथमिकता एक पूर्णांक मान के रूप में दी जाती है और कार्य दी गई प्राथमिकता के अनुसार एक डबल लिंक्ड सूची बनाना और परिणाम प्रदर्शित करना है। Queue एक FIFO डेटा संरचना है जिसमें जो तत्व पहले डाला जाता है वह सबसे पहले निकाला जाता है। प्राथमिकता कतार एक प्रकार की कतार है जिसमें प्राथमिकता क