কম্পিউটার

C++ প্রোগ্রামে ডবল শেষ অগ্রাধিকার সারি


এই টিউটোরিয়ালে, আমরা 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

উপসংহার

টিউটোরিয়ালে আপনার কোন প্রশ্ন থাকলে মন্তব্য বিভাগে উল্লেখ করুন।


  1. C++ স্ট্যান্ডার্ড টেমপ্লেট লাইব্রেরিতে (STL) অগ্রাধিকার সারি

  2. C++ এ দ্বিগুণ লিঙ্কযুক্ত তালিকা ব্যবহার করে অগ্রাধিকার সারি

  3. অগ্রাধিকার নির্ধারণের জন্য C++ প্রোগ্রাম

  4. ডাবল ইন্টিগ্রেশন গণনা করার জন্য C++ প্রোগ্রাম