我正在尝试将值插入到最初为空的二进制堆中。
这是相关代码:
public class minHeap
{
int[] array;
int n;
public void minHeap()
{
array = new int [16];
n = 0;
}
public void insert(int x) {
//if (n == array.length - 1)
//enlargeArray(array.length*2 + 1);
// Hole is generated at end of array
int hole = ++n;
System.out.println("H"+hole);
// Percolate up
for (array[0] = x; x < array[hole/2]; hole /= 2)
array[hole] = array[hole/2];
// Insert new element
array[hole] = x;
}
我NullPointerException
从 insert 方法中获得了 for 循环内的内容。这与我处理最初的空数组的方式有关吗?
这是初始化类:
public class BinaryHeap {
public static void main(String[] args)
{
int [] heapArray = {62, 75, 81, 71, 66, 69, 72, 73, 83, 82, 67, 72, 81, 73, 69, 90};
minHeap hp = new minHeap();
for(int i = 0; i < heapArray.length; i++)
{
hp.insert(heapArray[i]);
}
}
}