📄 实现优先权队列.cpp
字号:
#include<assert.h>
#include<iostream>
using namespace std;
//<<<<<<<<<<<<<<<<<<<<<<<<
const int maxPQsize=50;
class PQueue{
int *pqelements;
int count;
public:
PQueue();
~PQueue(){ delete[]pqelements; }
void PQinsert(const int &item);
int PQremove();
void makeempty(){ count=0; }
int isempty() const { return count==0; }
int isfull() const {return count==maxPQsize; }
};
//---------------------------------------------------------
PQueue::PQueue():count(0)
{
pqelements=new int[maxPQsize];
assert(pqelements!=0);
}
void PQueue::PQinsert (const int &item)
{
assert(!isfull());
pqelements[count] = item;
count++;
}
int PQueue::PQremove ()
{
assert(!isempty());
int min=pqelements[0];
int minindex=0;
for(int i = 1;i < count; i++)
{
if(pqelements[i] < min) { min=pqelements[i]; minindex=i; }
}
pqelements[minindex] = pqelements[count-1];
count--;
return min;
}
//-----------------------------------------------
void main()
{
PQueue PQ;
int n=0;
cout<<"输入元素个数:"<<endl;
cin>>n;
for(int i=0;i<n;i++)
{
cout<<"输入第"<<i+1<<"个元素"<<endl;
int m; cin>>m;
PQ.PQinsert(m);
}
cout<<"按优先权删除顺序为:"<<endl;
while(!PQ.isempty())
{
cout<<PQ.PQremove()<<" ";
}
cout<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -