using namespace std;
int main()
{
MaxHeap
int a[11]={-111,5,2,12,3,55,21,7,9,11,9};
cout<<"用数组a来初始化堆:"<
cout< cout<
hp.Init_heap(a,10,15);
int max;
cout<<"目前堆中最大值为:"<
hp.DeleteMax(max);
cout<<"删除的堆中最大的元素为:"<
cout<<"现在堆的大小为:"<
cout<<"向堆中插入新元素"<
hp.Insert(22);
hp.Insert(45);
hp.Insert(214);
hp.Insert(16);
hp.Insert(21);
hp.Insert(121);
hp.Insert(111);
cout<<"插入后现在堆的大小为:"<
cout<<"现在由大到小输出堆中元素"<
do
{
hp.DeleteMax(max);
if(max== -9999)
break;
cout<
cout<
return 0;
}
测试结果:

在只是需要使用一个优先队列的时候,这种结构是十分有效率的,空间利用率也很高。但是并不适用于所有优先队列的使用,尤其是需要合并两个优先队列或多个长度不相等的队列的时候。
摘自:Kay's space Good Good Study,Day Day Up~