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
結論
チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。
-
優先スケジューリングのためのC++プログラム
n個のプロセス、つまりP1、P2、P3、.......、Pnと、各プロセスに関連付けられた対応するバースト時間と優先度が与えられます。タスクは、優先CPUスケジューリングアルゴリズムを使用して、平均待機時間、平均ターンアラウンドタイム、およびプロセス実行のシーケンスを見つけることです。 待機時間と所要時間とは何ですか? 所要時間 プロセスの送信から完了までの時間間隔です。 所要時間=プロセスの完了–プロセスの提出 待機時間 ターンアラウンドタイムとバーストタイムの差です 待機時間=所要時間–バースト時間 優先スケジューリングとは何ですか? 優先度スケジューリングでは、すべての
-
二重積分を計算する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 以下のプログラムで使用されるアプローチは