给出BinaryTree类的通用版本,它存储类型参数E的实例

时间:2014-01-07 19:30:58

标签: java generics binary-search-tree

你好在修订的练习论文中我已经得到了这个问题。

问题3中的类BinaryTree以二叉树结构和方法存储整数 isInOrder()测试树的顶部标签是否大于顶部标签 左子树,小于左子树的顶部标签。该类的通用形式可以存储实现Comparable接口的任何类的实例:

public interface Comparable<T>
{
    public int compareTo(T o);
}

如果instance更小,instance.compareTo(arg)返回负值 比arg,如果instance和arg相等则为0,如果instance更大则为正值 比arg。例如,Integer类实现Comparable instance.compareTo(arg)返回实例 - arg。

(a)给出一个存储类型参数E实例的类BinaryTree的泛型版本, 要求E扩展Comparable。请注意,您需要 更改isInOrder()方法中的代码,以便它使用compareTo()。做 在答案中不包括主要方法。

早期问题的代码在http://pastebin.com/x2p7q3wy

我真的无法绕过我必须做的问题,而且我在仿制药上找到的大部分信息都让我很困惑。如果有人能帮助我解决这个问题,或者给我一个很好的通用课程介绍,我将非常感激。

1 个答案:

答案 0 :(得分:0)

如评论中所述,这是正确的:

class BinaryTree<E extends Comparable<E>>{

INSERT CODE HERE

}

然后,您将实现BinaryTree的所有方法 - 使用x.compareTo(y)代替您的isInOrder()方法的比较运算符。可能还需要进行其他修改,但我没有查看所有代码。

这样做的好处是有一个BinaryTree类可以插入任何Object,只要它实现Comparable