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

标签 java insert nullpointerexception heap min-heap

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

这是相关代码:

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/

相关文章:

java - 我怎样才能做一些像将文本设置到 ListView 中的 TextView 一样简单的事情

java - Eclipse 编译器设置以在 String 上捕获 ==

java - HOWTO 在使用 Spymemcached 客户端库用于 memcached 服务器时解决 "restributing to another node"的警告消息

php - Mysql INSERT INTO 不工作-语法正确

mysql - 插入具有主键重复项的语句

java - java GC 是否考虑在另一个线程中进行的引用?

java - 自动更新 Action 的 isEnabled()

java - 为什么 Java 找不到我的构造函数?

c++ - 在 STL 映射中添加类对象作为值

java - 如何修复 NetBeans 生成的代码上的 'Exception in thread "AWT-EventQueue- 0"java.lang.NullPointerException'?