[英]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.