gpt4 book ai didi

java - 堆排序实现bug,与插入函数

转载 作者:行者123 更新时间:2023-12-02 13:17:24 25 4
gpt4 key购买 nike

我需要用堆排序来实现一些东西,但我遇到了一个错误。

在堆类中:

private serial[] data;
private int size;
private static final int FRONT = 1;
public Heap(){
serial[] data = new serial[1000]; //serial - object with a String
this.size = 0;
data[0] = new serial("");
}

public void insert(serial t){
size++;
data[size] = t; **<--- Null Pointer EXCEPTION**
int current = size;
while(data[current].serialNumber() > data[parent(current)].serialNumber()){
swap(parent(current), current);
current = parent(current);
}
}

(当然还有更多用于堆实现的函数)。和主类:

public class Simulation {

public static void main(String[] args) {
Heap maxHeap = new Heap();
maxHeap.insert(new serial("a"));
maxHeap.insert(new serial("ba"));
maxHeap.print();

}

}

(我插入字符串并返回基于数字的排序数组)我运行了程序,它返回一个空指针异常(对于插入函数,它是在代码中写的)。

出于某种原因,它说:(在 Heap 类中)

private serial[] data;

从未使用过。

最佳答案

在堆构造函数中,我再次初始化了实例变量。

感谢 Seelenvirtuose

关于java - 堆排序实现bug,与插入函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43716141/

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