簡體   English   中英

Java堆實現

[英]Java Heap Implementation

您將從以下接口實現堆:

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方法應在內部將堆轉換為其數組表示形式,並對其執行Heap-Sort ,然后將數組作為結果返回。

這個提示讓我有些困惑。 我的問題是這到底要我做什么? 我無法理解提示。 是否只想創建一個實現Heap的名為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;
}

}'

這個問題的主要問題似乎是數據內部存儲在樹中(我假設是堆樹 ),而不是使用array / list實現 實際上,我將節點堆作為“由節點實現的堆”,但是它也可以作為類名正常工作。

盡管您可以在一個類中實現它,但考慮到Java在Swing包中只有一個樹模型這一事實, 實現您自己的樹是很常見的,它肯定涉及更多的類(可以是內部的或匿名的)。 這個問題似乎並不介意。

更新:該代碼看起來是一個不錯的開始,假設您完成后實際上不會返回null。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM