我给了一个Dictionary接口,如下所示:
public interface Dictionary<E extends Comparable<E>> extends Iterable<E> {
现在我被要求使用二叉搜索树来实现这个接口,但是我不知道如何开始,因为我对上面实现Dictionary接口的理论概念感到困惑。
这是我的实施课程:
// Red-black binary search tree
public class DictionaryImp implements Dictionary<DictionaryImp>, Comparable<DictionaryImp> {
那么,我该如何实现以下方法呢? DictionaryImp类会携带哪些实例变量?
public boolean isEmpty();
public boolean contains(E item);
public boolean hasPredecessor(E item);
// etc.
答案 0 :(得分:0)
我不知道您对红黑树的实现,但基本上所有提到的方法都会调用相应的红黑树方法。
isEmpty:检查树是否为空
包含(E项):在树上执行二进制搜索以查找元素。如果可以找到则返回
add(E item):if(!contains(item))tree.add(item);
etc.etc。
答案 1 :(得分:0)
你所拥有的课堂宣言没有多大意义。 Dictionary
的类型参数似乎是字典的元素类型;这就是他们要求元素与自己相媲美的原因。您的声明似乎说DictionaryImp
是一个字典,其元素也是DictionaryImp
,这没有意义。您可能想要的是DictionaryImp
,它也是通用的,其元素类型与其自身相当,并实现具有相同类型参数的字典,如下所示:
public class DictionaryImp<E extends Comparable<E>> implements Dictionary<E>