首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java堆实现

Java堆实现
EN

Stack Overflow用户
提问于 2016-01-26 07:07:57
回答 1查看 354关注 0票数 0

您将从以下接口实现堆:

代码语言:javascript
复制
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);
}

但是,应该实现为节点堆,也就是说,内部实现应该是树而不是数组。getSortedContents方法应该在内部将堆转换为其数组表示,并在其上执行堆排序,然后返回数组作为结果。

这个提示让我有点困惑。我的问题是,这究竟是要我做什么?我很难理解提示符。它想让我只创建一个名为NodeHeap.java的类来实现堆吗?

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

代码语言:javascript
复制
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;
}

}‘

EN

回答 1

Stack Overflow用户

发布于 2016-01-26 07:17:20

这个问题的主要关注点似乎是数据存储在内部的树中(我假设是一个堆树 ),而不是实现的带有数组/列表。实际上,我将Node作为“由节点实现的堆”,但它也可以作为类名运行。

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35008537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档