このコードを確認してください。このプログラムをコーディングしました。これは、必要な機能を備えた優先キューです。
1. Insert
2. Find
3. Delete
4. Show
あなたはそれを試すことができます。それは完全に機能しています。ここでは、昇順の最小数を最大数に追加しました。
優先キューのデフォルト機能を使用して、switch ケースでそれを行いました。
queue.push()
queue.pop()
queue.top()
queue.size()
C++ コード:
#include<bits/stdc++.h>
#include <queue>
using namespace std;
void show_queue(
priority_queue<int, vector<int>, greater<int> > data)
{
priority_queue<int, vector<int>,greater<int> > myq = data;
while (!myq.empty()) {
cout << '\t' << myq.top();
myq.pop();
}
cout << '\n';
}
int main()
{
priority_queue<int, vector<int>,greater<int> > myp_queue;
while(1)
{
int choice;
cout<<"\nwhat do you want to do?"<<endl;
cout<<"1. Insert \n2. Find \n3. Delete \n4. Show Queue \n\nchoice your option from above: ";
cin>>choice;
switch(choice)
{
case 1:
int n;
cout<<"Enter the value: " ;
cin>>n;// Option 2 => Insert
myp_queue.push(n);
break;
case 2:
if(!myp_queue.empty()){
cout<<"\n"<<myp_queue.top()<<" is the minimum number"<<endl; // Find the minimum number.
}else{
cout<<"\nEmpty Priority Queue"<<endl;
}
break;
case 3:
if(!myp_queue.empty()){
myp_queue.pop(); //Delete the minimum number from the queue
cout<<"\nSuccessfully Deleted"<<endl;
}else{
cout<<"\nThere is no element to delete"<<endl;
}
break;
case 4:
if(!myp_queue.empty()){
show_queue(myp_queue); // Show full queue
}else{
cout<<"\nEmpty Priority Queue"<<endl;
}
break;
default:
cout<<"\nYou are terminated!!! \nYou entered wrong input.\n"<<endl;
}
}
return 0;
}