gpt4 book ai didi

java - 有没有办法在我的代码中修复我的 Max heapify

转载 作者:太空宇宙 更新时间:2023-11-04 09:52:47 26 4
gpt4 key购买 nike

问题是我正在尝试修复最大堆,但它不起作用,因为错误不断发生。我一直在遵循几本书中的伪代码,但仍然显示错误。我尝试使用 = 进行交换,将 A[i] 交换为 A[largest],但出现错误

class Heap {
// public for JUnit testing purposes
public ArrayList<Integer> array;
public int heap_size;

public Heap(int size) {
}
public Heap(List<Integer> source) {
this(source, false);
}
public Heap(List<Integer> source, boolean incremental) {
}

public static int parent(int index) {
return index/2;
}
public static int left(int index) {
return 2 * index;
}
public static int right(int index) {
return (2 * index) + 1;
}

public void maxHeapify(int i, int A)
{
int l = left(i);
int r = right(i);
if(l <= A.heap_size && A[l] > A[i])
largest = l;
else
largest = i;
if(r <= A.heap_size && A[r] > A[largest])
largest = r;
if(largest != i)
{
A[i] = A[largest];
maxHeapify(A,largest);
}
}
public void buildMaxHeap() {
}
public void insert(Integer k) {
}
public Integer maximum() {
return 0;
}
public Integer extractMax() {
return 0;
}
}

我希望它能够运行,但出现错误

    Heap.java:31: error: int cannot be dereferenced
if(l <= A.heap_size && A[l] > A[i])
^
Heap.java:31: error: array required, but int found
if(l <= A.heap_size && A[l] > A[i])
^
Heap.java:31: error: array required, but int found
if(l <= A.heap_size && A[l] > A[i])
^
Heap.java:32: error: cannot find symbol
largest = l;
^
symbol: variable largest
location: class Heap

如果可以的话,请帮忙。

最佳答案

== 是比较运算符。如果您想分配一个值,您应该使用 = 运算符:

A[i] = A[largest];

关于java - 有没有办法在我的代码中修复我的 Max heapify,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54505735/

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