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

सी ++ में प्राथमिकता कतार

जैसा कि हम जानते हैं कि क्यू डेटा संरचना फर्स्ट इन फर्स्ट आउट डेटा संरचना है। कतार में कुछ भिन्नताएँ भी हैं। ये Dequeue और प्राथमिकता कतार हैं।

यहां हम कतार की एक भिन्नता देखेंगे, वह है प्राथमिकता कतार। इस संरचना में, कतार में प्रत्येक तत्व की अपनी प्राथमिकता होती है। जब हम आइटम को कतार में सम्मिलित करते हैं, तो हमें इसके साथ प्राथमिकता मान निर्दिष्ट करना होता है। यह सबसे पहले सर्वोच्च प्राथमिकता वाले तत्व को हटा देगा। प्राथमिकता कतार को लागू करने के लिए ढेर डेटा संरचना का उपयोग करना सबसे आसान तरीका है।

आइए प्राथमिकता कतार एसटीएल के लिए एक सी ++ कोड देखें। यहां मूल्य के आधार पर प्राथमिकता दी जाती है। तो उच्च मूल्य को सर्वोच्च प्राथमिकता वाला तत्व माना जाएगा।

एल्गोरिदम

insert(key, priority):
Begin
   insert key at the end of the heap
   heapify the array based on the priority
End
delete():
Begin
   item := root element
   root := last element from array
   heapify the array to arrange based on priority
   return item
End

उदाहरण

#include <iostream>
#include <queue>
using namespace std;
void dequeElements(priority_queue <int> que) {
   priority_queue <int> q = que;
   while(!q.empty()){
      cout << q.top() << " ";
      q.pop();
   }
   cout << endl;
}
int main() {
   priority_queue <int> que;
   que.push(10);
   que.push(20);
   que.push(30);
   que.push(5);
   que.push(1);
   cout << "Currently que is holding : ";
   dequeElements(que);
   cout << "Size of queue : " << que.size() << endl;
   cout << "Element at top position : " << que.top() << endl;
   cout << "Delete from queue : ";
   que.pop();
   dequeElements(que);
   cout << "Delete from queue : ";
   que.pop();
   dequeElements(que);
}

आउटपुट

Currently que is holding : 30 20 10 5 1
Size of queue : 5
Element at top position : 30
Delete from queue : 20 10 5 1
Delete from queue : 10 5 1

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

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

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

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

  1. संदेश कतारों का उपयोग कर आईपीसी

    जब हमारे पास पहले से ही साझा मेमोरी है तो हमें संदेश कतारों की आवश्यकता क्यों है? यह कई कारणों से होगा, आइए हम इसे सरलीकरण के लिए कई बिंदुओं में विभाजित करने का प्रयास करें - जैसा कि समझा जाता है, एक बार एक प्रक्रिया द्वारा संदेश प्राप्त हो जाने के बाद यह किसी अन्य प्रक्रिया के लिए उपलब्ध नहीं हो