public class HeapNode{

private int size;//堆大小private int[] heap;//保留堆数组//初始化堆public HeapNode(int n) {    heap = new int[n];    size = 0;}//小顶堆建堆public void minInsert(int key){    int i = this.size;    if (i==0) heap[0] = key;    else {        while (i>0 && heap[i/2]>key){            heap[i] = heap[i/2];            i = i/2;        }        heap[i] = key;    }    this.size++;}//大顶堆建堆public void maxInsert(int key){    int i = this.size;    if (i==0) heap[0] = key;    else {        while (i>0 && heap[i/2]<key){            heap[i] = heap[i/2];            i = i/2;        }        heap[i] = key;    }    this.size++;}//小顶堆删除public int minDelete(){    if (this.size==0) return -1;    int top = heap[0];    int last = heap[this.size-1];    heap[0] = last;    this.size--;    //[金属期货](https://www.gendan5.com/cf/mf.html)堆化    minHeapify(0);    return top;}//大顶堆删除public int maxDelete(){    if (this.size==0) return -1;    int top = heap[0];    int last = heap[this.size-1];    heap[0] = last;    this.size--;    //堆化    maxHeapify(0);    return top;}//小顶堆化public void minHeapify(int i){    int L = 2*i,R=2*i+1,min;    if (L<=size && heap[L] < heap[i]) min = L;    else min = i;    if (R <= size && heap[R] < heap[min]) min = R;    if (min!=i){        int t = heap[min];        heap[min] = heap[i];        heap[i] = t;        minHeapify(min);    }}//大顶堆化public void maxHeapify(int i){    int L = 2*i,R=2*i+1,max;    if (L<=size && heap[L] > heap[i]) max = L;    else max = i;    if (R <= size && heap[R] > heap[max]) max = R;    if (max!=i){        int t = heap[max];        heap[max] = heap[i];        heap[i] = t;        maxHeapify(max);    }}//输入堆public void print(){    for (int i = 0; i < this.size; i++) {        System.out.print(heap[i]+" ");    }    System.out.println();}

}