定义:一棵大根树(小根树)是这样一棵树,其中每一个节点的值都大小(小于)或等于其子节点(如果有子节点的话)的值。
一个大根堆(小根堆)既是大根树(小根树)也是完全二叉树。
大根堆
小根堆
本篇主要实现大根堆的初始化,插入以及删除操作。
在实现这些之前,先来简单介绍一下大根堆类的主要数据成员:
私有成员变量:
heap:一维数组,用于存储堆中的元素;
heapSize:整型变量,用于记录堆中元素个数;
arrayLength:整形变量,用于记录堆最大容量,即最多可以容纳多少个元素;
公有成员函数:
initialize(T* ,int):初始化最大堆,第一个形参为初始化的数组,第二个形参为元素个数;
remove(int);删除最大堆中特定元素;
push(const T&);添加新元素;
私有成员函数:
changeArrayLength(T*, int):当实际容量等于额定容量时,扩充额定容量;
adjust(T&,int,