常用类之三----最小堆实现优先队列

原创 2006年05月28日 23:12:00

Priority_Queue.h
#include"MinHeap.h"
template<class T>
class Priority_Queue{
 public:
  Priority_Queue();
  ~Priority_Queue();
  void Push(const T &x);
     T Pop();
  bool IsEmpty();
  bool IsFull();
 private:
  MinHeap<T> *m_heap;
  const int maxSize;
};

template<class T>
Priority_Queue<T>::Priority_Queue():maxSize(100){
     m_heap = new MinHeap<T>(maxSize);
}

template<class T>
Priority_Queue<T>::~Priority_Queue(){
  delete m_heap;
}

template<class T>
void Priority_Queue<T>::Push(const T &x){
  m_heap->Insert(x);
}

template<class T>
T  Priority_Queue<T>::Pop(){
  T temp;
  m_heap->RemoveMin(temp);
  return temp;
}

template<class T>
bool Priority_Queue<T>::IsEmpty(){
  return m_heap->IsEmpty();
}

template<class T>
bool Priority_Queue<T>::IsFull(){
  return m_heap->IsFull();
}

mainApp.cpp测试文件:

#include<iostream>
#include"Priority_Queue.h"
using namespace std;

void main(){
 int a[5] = {3,2,1,4,5};
 int i;
 Priority_Queue<int> p_queue;
 for(i = 0; i < 5; i++){
  p_queue.Push(a[i]);
 }
 while(!p_queue.IsEmpty()){
  cout<<p_queue.Pop()<<" ";
 }
 cout<<endl;
}

用最小堆实现优先队列

最近在复习数据结构,文章所使用c++,因时间仓促,使用的是较简单的C风格,稍作改动即可面向对象操作。代码粗糙:#include #include using namespace std;int *...

最小堆 / 优先队列(C语言实现)

最近找实习,复习下数据结构方面的内容:用C语言实现最小堆/优先队列。并通过最小堆求解查找第k大元素的问题。...

简单优先队列实现-基于最小堆

一、什么是优先队列优先队列不是按照普通对象先进先出原FIFO则进行数据操作,其中的元素有优先级属性,优先级高的元素先出队。本文提到的优先队列,是基于最小堆原理实现。 二、什么是最小堆最小堆是一个完全二...

最小堆实现优先队列解决修理牧场(c/c++)

修理牧场 农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数L​i​​个长度单位,于是他购买了一条很长的、能锯成N块的木头,即该木头的长度是L​i​​的总和。 但是农夫...
  • hp5063
  • hp5063
  • 2017年12月11日 20:45
  • 9

min heap priority queue 最小堆实现的优先队列

#include #include #include int A[10000000]; using namespace std; inline int PARENT(int i) { retu...

C++实现优先队列——最小堆,d路堆及配对堆

C++实现三种优先队列

Timer 源码解读 (2) TaskQueue 最小堆实现的优先队列

Timer中的定义:

数据结构实现之最小优先队列(最小堆)

package xwq.dt;import java.util.Comparator; import java.util.Iterator; import java.util.NoSuchElemen...

c语言最小堆的实现-优先队列

libevent 中有定时事件的管理,用户可以把超时的定时事件插入到 管理器中,当时间到了之后触发用户的回调函数处理; 查看了源码发现,定时器的数据结构其实是由最小堆来实现的。 优先队列为完全二叉树,...

Poj 2051 Argus (最小堆/优先队列)

Argus Time Limit: 1000MS   Memory Limit: 30000K Total Submissions:11624   Accepted...
  • lj130lj
  • lj130lj
  • 2017年11月30日 21:46
  • 19
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:常用类之三----最小堆实现优先队列
举报原因:
原因补充:

(最多只允许输入30个字)