如何为字典界面实现二叉搜索树?

时间:2012-05-13 07:47:07

标签: java generics dictionary binary-search-tree

我给了一个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.

2 个答案:

答案 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>