C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++プログラムのダブルエンド優先キュー


このチュートリアルでは、C++のセットを使用して両端優先キューを作成します。

両端キューを作成する手順を見てみましょう。

  • 必要に応じて名前を付けて構造体を作成します。

  • セットを使用してキューの変数を作成します。

  • サイズ キューのサイズを返すメソッド。

  • is_empty キューが空かどうかを返すメソッド。

  • 挿入 新しい要素をキューに挿入するメソッド。

  • 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

結論

チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。


  1. 優先スケジューリングのためのC++プログラム

    n個のプロセス、つまりP1、P2、P3、.......、Pnと、各プロセスに関連付けられた対応するバースト時間と優先度が与えられます。タスクは、優先CPUスケジューリングアルゴリズムを使用して、平均待機時間、平均ターンアラウンドタイム、およびプロセス実行のシーケンスを見つけることです。 待機時間と所要時間とは何ですか? 所要時間 プロセスの送信から完了までの時間間隔です。 所要時間=プロセスの完了–プロセスの提出 待機時間 ターンアラウンドタイムとバーストタイムの差です 待機時間=所要時間–バースト時間 優先スケジューリングとは何ですか? 優先度スケジューリングでは、すべての

  2. 二重積分を計算するC++プログラム

    変数xの下限、変数xの上限、変数yの下限、変数yの上限、対応するxに対して実行されるステップ、および対応するyに対して実行されるステップが与えられ、タスクは二重積分を生成することです。結果を表示します。 例 Input-: steps for x = 1.2 steps for y = 0.54 lower limit of x = 1.3 upper limit of x = 2.1 lower limit of y = 1.0 upper limit for y = 2.1 Output-: double integration is : 2.1 以下のプログラムで使用されるアプローチは