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

📄 pqueue.h

📁 优先级队列类的实现
💻 H
字号:

//利用数组实现的优先级队列
//也可用来排序噢 ^^
#ifndef PQUEUE
#define PQUEUE

#include <assert.h>
#include <iostream.h>
#include <stdlib.h>

const int maxPQSize=50;	    			//缺省元素个数

template <class Type>
class PQueue 
{
public:
	PQueue();							
    ~PQueue(){ delete[] pqelements; }
    void PQInsert(const Type &item);
    Type PQRemove();  
	void MakeEmpty(){ count=0;}
    bool IsEmpty()const { return count==0; }		
    bool IsFull()const { return count==maxPQSize; }	
    int Length()const { return count; }
private:
    Type *pqelements;				//存放数组
    int count;						//队列中元素个数	
};

template <class Type> 
PQueue<Type>::PQueue():count(0) 
{
    pqelements=new Type[maxPQSize];	
    assert(pqelements!=0);			  //分配断言
}

template <class Type> 
void PQueue<Type>::PQInsert(const Type &item)
{
    assert(!IsFull());				//判队满断言  
	pqelements[count]=item;	
	count++;
}

template <class Type>
Type PQueue<Type>::PQRemove() 
{
    assert(!IsEmpty());				//判队空断言
    Type min=pqelements[0];			
    int minindex=0;
    for(int i=1;i<count;i++)		//寻找最小元素
		if(pqelements[i]<min)      //存于min
		{
			min = pqelements[i];   
			minindex = i; 
		}
    pqelements[minindex]=pqelements[count-1];	
    count--;				  //删除		
    return min;
}


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -