Java堆实现

Java堆实现,java,heap,Java,Heap,您将从以下接口实现堆: public interface Heap<V extends Comparable<V>> { public void add(V value); public V[] toArray(V[] array); public V remove(); public void fromArray(V[] array); public V[] getSortedContents(V[] array); } 公共接口堆{ 公共空间增加

您将从以下接口实现堆:

public interface Heap<V extends Comparable<V>> {
  public void add(V value);
  public V[] toArray(V[] array);
  public V remove();
  public void fromArray(V[] array);
  public V[] getSortedContents(V[] array);
}
公共接口堆{
公共空间增加值(V值);
公共V[]阵列(V[]阵列);
公共V移除();
公共void fromArray(V[]数组);
公共V[]getSortedContents(V[]数组);
}
但是,应该实现为节点堆,即 也就是说,内部实现应该是树而不是数组。 getSortedContents方法应该在内部转换 堆到其数组表示形式中,并在 然后返回数组作为结果

这个提示让我有点困惑。我的问题是这到底要我做什么?我很难理解提示。 它是否希望我只创建一个名为NodeHeap.java的类来实现堆

更新: 那么我的NodeHeap类会像这样吗?还是我完全错了

public class NodeHeap<V> implements Heap<V> {

@Override
public void add(V value) {


}

@Override
public V[] toArray(V[] array) {

    return null;
}

@Override
public V remove() {

    return null;
}

@Override
public void fromArray(V[] array) {


}

@Override
public V[] getSortedContents(V[] array) {

    return null;
}
公共类NodeHeap实现堆{
@凌驾
公共无效添加(V值){
}
@凌驾
公共V[]阵列(V[]阵列){
返回null;
}
@凌驾
公共V删除(){
返回null;
}
@凌驾
公共void fromArray(V[]数组){
}
@凌驾
公共V[]GetSortedContent(V[]数组){
返回null;
}

}“

问题的主要关注点似乎是数据存储在树(我假设是一个树)内部,而不是实现。 事实上,我将节点堆视为“由节点实现的堆”,但它也可以作为类名使用

虽然您可以在一个类中实现它,但考虑到Java在Swing包中只有一个类,这对于您自己的树来说是非常常见的,它当然涉及更多的类(可以是内部的或匿名的)。 这个问题似乎并不介意

更新:代码看起来是一个很好的开始,假设您完成后不会实际返回null