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

C ++標準テンプレートライブラリ(STL)の優先キュー


優先度キューは、優先度に基づいて要素の挿入と削除をサポートする優先度の高い要素のコレクションを格納するための抽象データ型です。つまり、優先度の高い要素はいつでも削除できます。優先度付きキューは、スタック、キュー、リストなどの場所に関して要素を線形に格納しません。優先度付きキューADT(抽象データ型)は、優先度に基づいて要素を格納します。

優先キューは次の機能をサポートします

サイズ() −優先キュー内の要素数を返すため、優先キューのサイズを計算するために使用されます。

Empty() −優先キューが空の場合はtrueを返し、そうでない場合はfalseを返します

挿入(要素) −新しい要素を優先キューに挿入するために使用されます

Min() −関連付けられたキー値が最小の要素を返し、優先キューが空の場合はエラーメッセージを表示します。

removeMin() − min()関数によって参照される要素を削除します。

以下に、優先キューに対する操作の影響を示す表を示します

C ++標準テンプレートライブラリ(STL)の優先キュー

Start
Step 1-> Declare function to display the elements in a Priority Queue
   void display(priority_queue <int> Pq)
   declare and set priority_queue <int> que = Pq
   Loop While (!que.empty())
      call que.top()
      call que.pop()
   End
Step 2-> In main()
Create object of priority_queue <int> Pq
   Call push() to insert element in a priority queue as Pq.push(1)
   Call display(Pq)
   Call to check the size of a priority queue Pq.size()
   Call to display the top element of a priority queue Pq.top()
   Call to remove the elements of a priority queue Pq.pop()
   Call display(Pq)
Stop

#include <iostream>
#include <queue>
using namespace std;
void display(priority_queue <int> Pq) {
   priority_queue <int> que = Pq;
   while (!que.empty()) {
      cout << '\t' << que.top();
      que.pop();
   }
   //cout << '\n';
}
int main () {
   priority_queue <int> Pq;
   Pq.push(1);
   Pq.push(3);
   Pq.push(5);
   Pq.push(7);
   Pq.push(9);
   cout << "The priority queue is : ";
   display(Pq);
   cout << "\nPrioriy queue size using size() : " << Pq.size();
   cout << "\nFirst element of priority queue using top(): " << Pq.top();
   cout << "\nremoving element using pop() : ";
   Pq.pop();
   display(Pq);
   return 0;
}

出力

The priority queue is : 9 7 5 3 1
Prioriy queue size using size() : 5
First element of priority queue using top(): 9
removing element using pop() : 7 5 3 1

  1. C /C++での優先キューの紹介

    優先度キューは、割り当てられた優先度に従って要素が挿入または削除されるタイプのキューです。優先度は0〜10の範囲の整数値であり、0は最も優先度の高い要素を示し、10は次の要素を示します。最も低い優先度。優先キューを実装するために従うべき2つのルールがあります- 優先度が最も高いデータまたは要素は、優先度が最も低いデータまたは要素の前に実行されます。 2つの要素の優先度が、順番に実行される要素と同じである場合、それらはリストに追加されます。 スタック、キュー、リンクリストなどの優先キューを実装するために使用できる複数のデータ構造があります。この記事では、キューのデータ構造について説明しま

  2. C++で二重にリンクされたリストを使用した優先キュー

    データと優先度は整数値として与えられ、タスクは与えられた優先度に従って二重にリンクされたリストを作成し、結果を表示することです。 キューはFIFOデータ構造であり、最初に挿入された要素が最初に削除されます。優先度付きキューは、優先度に応じて要素を挿入または削除できるキューの一種です。キュー、スタック、またはリンクリストのデータ構造を使用して実装できます。優先キューは、次のルールに従って実装されます- 優先度が最も高いデータまたは要素は、優先度が最も低いデータまたは要素の前に実行されます。 2つの要素の優先度が、順番に実行される要素と同じである場合、それらはリストに追加されます。 優先