এই টিউটোরিয়ালে আমরা C++-তে সেট (set) ব্যবহার করে একটি ডবল-এন্ডেড প্রায়রিটি কিউ তৈরি করব।
ডবল-এন্ডেড কিউ তৈরির ধাপগুলো:
আপনার ইচ্ছামতো নামে একটি struct তৈরি করুন।
সেট ব্যবহার করে কিউ-এর জন্য একটি ভেরিয়েবল তৈরি করুন।
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
উপসংহার
টিউটোরিয়াল সম্পর্কে কোনো প্রশ্ন থাকলে কমেন্ট সেকশনে জানান।