大顶堆(Max Heap)
大顶堆是一种特殊的树形数据结构,它满足以下性质:
-
它是一个完全二叉树:除了最底层外,每一层都被完全填满。在最底层,所有的元素都应该尽可能地靠左排列。
-
每个节点的值都大于或等于其子节点的值。这就是为什么它被称为大顶堆。
下面是一个大顶堆的示例:
上图中,根节点(100)是所有节点中的最大值。同样,每个父节点的值都大于或等于其子节点的值。
好的,下面我将会分别介绍每个部分的代码:
定义变量
int[] array;
int size;
在这里,我们定义了两个成员变量。array
是用来存储堆中的元素的数组,size
是用来表示当前堆的大小。
构造函数
public MaxHeap(int[] array){
this.array = array;
this.size = array.length;
heapify();
}
在构造函数中,我们初始化 array
和 size
,并调用 heapify()
方法来构建大顶堆。
peek() 方法
public int peek(){
if(size == 0)
throw new IndexOutOfBoundsException();
return array[0]