gpt4 book ai didi

java - 插入二进制堆时出现 NullPointerException?

转载 作者:行者123 更新时间:2023-12-02 04:46:18 26 4
gpt4 key购买 nike

我正在尝试将值插入到最初为空的二进制堆中。

这是相关代码:

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;
}

我从 insert 方法的 for 循环中得到了 NullPointerException 。这与我处理最初的空数组的方式有关吗?

这是初始化类:

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]);
}
}
}

最佳答案

您尚未定义构造函数。

你写了...

public void minHeap()

这是一个方法,因为它有一个“void”返回类型。

如果你删除“void”,它可能会有所帮助

关于java - 插入二进制堆时出现 NullPointerException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29631208/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com