BinaryTree在标准API中

时间:2012-04-01 14:33:41

标签: java binary-tree

我的老师告诉我们,Java中有一个二进制树的默认类。我找到了this BinaryTree class,我试图声明一个BinaryTree对象,但它不起作用。

如何使用此类声明BinaryTree以及我应该包含哪个库?

我写了这样的话:

private BinaryTree<Integer> c=new BinaryTree<Integer>();

但是它说BinaryTree无法解析为某种类型。

1 个答案:

答案 0 :(得分:1)

那个类肯定不是“默认的java”。我想你的老师可能会谈论基于TreeSet形式的self-balancing binary tree

我不确定你给的链接类的年龄是多少,但它不使用泛型,所以它可能是Java 1.4-。此外,它使用的是默认包 - 这有点像Java禁忌,表明它可能不是生产就绪的。构造函数需要Comparator,它可以比较树将存储的实例。例如,如果要按顺序存储整数,可以将二叉树声明为:

BinaryTree bt = new BinaryTree(new Comparator(){
    public int compare(Object a, Object b){
        return ((Integer) a).intValue() - ((Integer) b).intValue();
    }
});

上面的代码声明了一个实现Comparator接口的匿名类。或者,您可以使用常规类来执行相同的操作:

MyIntegerComparator comparator = new MyIntegerComparator();    
BinaryTree bt = new BinaryTree(comparator);

你有代码..

class MyIntegerComparator implements Comparator {
    public int compare(Object a, Object b){
        return ((Integer) a).intValue() - ((Integer) b).intValue();
    }
}