使用java的数组和链表的堆接口

时间:2015-03-14 10:56:50

标签: java heap implementation

问题是这个

您的任务是实现可以与任何后备存储一起使用的堆。基本上你需要将抽象降低一步 - 例如我们使用堆而不用担心后备存储只是因为界面定义得很好。因此,您需要为支持设计一个界面 存储,以便实现堆接口的方法适用于任何后备存储。您的代码应该用Java开发,它应该适用于扩展可比类的任何数据类型。在这部分中,您只需要担心两个后备存储;数组和链接结构。您还需要为两个后备存储提供实现。

我很难理解这里应该做些什么。我得到的是,无论后备存储类型(阵列/链表),接口都应该工作如何在没有特定后备存储的情况下实现接口?该接口应该包括添加和删除功能。希望有人能对这个问题有所了解。谢谢

EDIT 这是我的堆接口,

public interface HeapInterface<T extends Comparable<T>>{
 public boolean isEmpty();
 public void add(T value);
 public T remove();
 public void show();
}

这是数组实现的声明

public class arrayHeap<T extends Comparable<T>> implements HeapInterface {

想知道声明是否有任何问题,因为一旦我在数组实现中实现了add(T value)方法,我就会遇到一堆错误

1 个答案:

答案 0 :(得分:0)

问题是正确地理解了这个问题,这个问题由@Tom精心解释如下

&#34;您需要编写一个Heap接口,该接口定义客户端可以在堆实例上调用的所有方法。然后编写两个实现这个新接口的类,并使用一个数组(类1)或一个LinkedList(类2)版本&#34;

一旦我跟着这个,我遇到了一些问题,我在EDIT下的第一篇文章中添加了这些问题。结果证明这是实现堆接口和数组实现的声明问题。

固定声明

public interface HeapInterface<T>

public class ArrayHeap<T extends Comparable<T>> implements HeapInterface<T>

感谢您的帮助!