C++ 堆结构(数组实现)(二)

2014-11-24 12:41:14 · 作者: · 浏览: 1

using namespace std;

int main()
{
MaxHeap hp;
int a[11]={-111,5,2,12,3,55,21,7,9,11,9};

cout<<"用数组a来初始化堆:"< for(int i=1;i<11;i++)
cout< cout<
hp.Init_heap(a,10,15);

int max;
cout<<"目前堆中最大值为:"<
hp.DeleteMax(max);
cout<<"删除的堆中最大的元素为:"< 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< }while(1);

cout<
return 0;
}
测试结果:

\


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

摘自:Kay's space Good Good Study,Day Day Up~