इस ट्यूटोरियल में, हम C++ में सेट का उपयोग करके डबल-एंडेड प्रायोरिटी क्यू बनाएंगे।
डबल-एंडेड क्यू बनाने के चरण देखते हैं।
अपनी इच्छा के नाम से एक स्ट्रक्चर बनाएं।
सेट का उपयोग करके क्यू के लिए एक वेरिएबल बनाएं।
size मेथड जो क्यू का आकार लौटाता है।
is_empty मेथड जो लौटाता है कि क्यू खाली है या नहीं।
insert मेथड क्यू में एक नया तत्व डालने के लिए।
get_start मेथड जो क्यू के बाएं तरफ से एक तत्व लौटाता है।
get_end मेथड जो क्यू के दाएं तरफ से तत्व लौटाता है।
delete_start मेथड जो बाएं तरफ से पहला तत्व हटाता है।
delete_end मेथड जो दाएं तरफ से पहला तत्व हटाता है।
उदाहरण
कोड देखते हैं।
#include <bits/stdc++.h> using namespace std; struct doubleEndedQueue { set<int> s; int size() { return s.size(); } string is_empty() { return s.size() == 0 ? "True" : "False"; } void insert(int x) { s.insert(x); } int get_start() { return *(s.begin()); } int get_end() { return *(s.rbegin()); } void delete_start() { if (s.size() == 0) { return; } s.erase(s.begin()); } void delete_end() { if (s.size() == 0) { return; } auto end = s.end(); end--; s.erase(end); } }; int main() { doubleEndedQueue d; cout << "is empty: " << d.is_empty() << endl; d.insert(1); d.insert(2); d.insert(3); d.insert(4); d.insert(5); cout << "is empty: " << d.is_empty() << endl; cout << "end: " << d.get_end() << endl; d.delete_end(); cout << "end: " << d.get_end() << endl; cout << "start: " << d.get_start() << endl; d.delete_start(); cout << "start: " << d.get_start() << endl; return 0; }आउटपुट
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम मिलेगा।
is empty: True is empty: False end: 5 end: 4 start: 1 start: 2
निष्कर्ष
यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उन्हें कमेंट सेक्शन में बताएं।