⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 实现优先权队列.cpp

📁 这个是我的大学作业哦 里面有些很经典的代码 出自清华大学的数据结构课本
💻 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 + -