इस ट्यूटोरियल में, हम c++ में सेट का उपयोग करके एक डबल-एंडेड प्राथमिकता कतार बनाने जा रहे हैं।
आइए एक डबल-एंडेड क्यू बनाने के चरणों को देखें।
-
अपनी इच्छानुसार नाम के साथ एक स्ट्रक्चर बनाएं।
-
सेट का उपयोग करके कतार के लिए एक चर बनाएँ।
-
आकार विधि जो कतार का आकार लौटाती है।
-
खाली है विधि जो लौटाती है कि कतार खाली है या नहीं।
-
सम्मिलित करें कतार में एक नया तत्व डालने की विधि।
-
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
निष्कर्ष
यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उनका टिप्पणी अनुभाग में उल्लेख करें।