0001 #include "PQ/PQ.h" //引入优先级队列ADT 0002 #include "BinTree/BinTree.h" //引入二叉树节点模板类 0003 0004 template <typename T> 0005 class PQ_LeftHeap : public PQ<T>, public BinTree<T> { //基于二叉树,以左式堆形式实现的PQ 0006 public: 0007 PQ_LeftHeap() { } //默认构造 0008 PQ_LeftHeap ( T* E, int n ) //批量构造:可改进为Floyd建堆算法 0009 { for ( int i = 0; i < n; i++ ) insert ( E[i] ); } 0010 void insert ( T ); //按照比较器确定的优先级次序插入元素 0011 T getMax(); //取出优先级最高的元素 0012 T delMax(); //删除优先级最高的元素 0013 }; //PQ_LeftHeap