你好在修订的练习论文中我已经得到了这个问题。
问题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
我真的无法绕过我必须做的问题,而且我在仿制药上找到的大部分信息都让我很困惑。如果有人能帮助我解决这个问题,或者给我一个很好的通用课程介绍,我将非常感激。
答案 0 :(得分:0)
如评论中所述,这是正确的:
class BinaryTree<E extends Comparable<E>>{
INSERT CODE HERE
}
然后,您将实现BinaryTree
的所有方法 - 使用x.compareTo(y)
代替您的isInOrder()
方法的比较运算符。可能还需要进行其他修改,但我没有查看所有代码。
这样做的好处是有一个BinaryTree
类可以插入任何Object,只要它实现Comparable