जैसा कि हम जानते हैं कि क्यू डेटा संरचना फर्स्ट इन फर्स्ट आउट डेटा संरचना है। कतार में कुछ भिन्नताएँ भी हैं। ये 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