JAVA 最小堆的实现 MinHeap

来源:百度知道 编辑:UC知道 时间:2024/06/11 13:43:28
在做一个算法题,需要用最小堆,如下,出现的问题是:
构造函数Heap(int max)中的Heap[0].length = Integer.MIN_VALUE 报出空指针错误。其中HeapNode 是我自定义的节点类只是包含int index;int length;而已。我把节点Heap类型改为整型、String型正确,问题出在哪啊?指针?
public class MinHeap {
private HeapNode[] Heap;
private int maxsize;
private int size;
public MinHeap(int max) {
maxsize = max;
Heap = new HeapNode[maxsize];
System.out.println(Heap.length);//打印为2500
size = 0 ;
Heap[0].length = Integer.MIN_VALUE; //报空指针错

}
public static void main(String agrs[])
{
Heap heap=new Heap(2500);
}
//........其他实现略
}

初始化不完全
public class MinHeap {
private HeapNode[] Heap;
private int maxsize;
private int size;
public MinHeap(int max) {
maxsize = max;
Heap = new HeapNode[maxsize];
System.out.println(Heap.length);//打印为2500
size = 0 ;
//insert
//start
for(int i = 0; i < maxsize; i++)
Heap[i] = new HeapNode();
//end
Heap[0].length = Integer.MIN_VALUE; //报空指针错

}
public static void main(String agrs[])
{
Heap heap=new Heap(2500);
}
//........其他实现略
}