এই টিউটোরিয়ালে, আমরা c++ এ সেট ব্যবহার করে একটি ডবল-এন্ডেড অগ্রাধিকার সারি তৈরি করতে যাচ্ছি।
চলুন একটি ডবল-এন্ডেড সারি তৈরি করার ধাপগুলি দেখি৷
৷-
আপনার ইচ্ছামত একটি নাম দিয়ে একটি স্ট্রাকট তৈরি করুন।
-
সেট ব্যবহার করে সারির জন্য একটি ভেরিয়েবল তৈরি করুন।
-
আকার পদ্ধতি যা সারির আকার প্রদান করে।
-
ইজ_খালি৷ পদ্ধতি যা সারিতে খালি থাকুক বা না থাকুক।
-
ঢোকান সারিতে একটি নতুন উপাদান সন্নিবেশ করার পদ্ধতি।
-
get_start পদ্ধতি যা সারির বাম দিক থেকে একটি উপাদান ফেরত দেয়।
-
get_end পদ্ধতি যা সারির ডান দিক থেকে উপাদানটি ফেরত দেয়।
-
মুছুন_শুরু পদ্ধতি যা বাম দিক থেকে প্রথম উপাদান মুছে দেয়।
-
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
উপসংহার
টিউটোরিয়ালে আপনার কোন প্রশ্ন থাকলে মন্তব্য বিভাগে উল্লেখ করুন।