我正在用键值节点生成二叉树。为二叉树(通用)实现compareTo(可比较的<T>)
它的工作原理是这样的:
的排序如下: 如果你实现你给一个键和一个值(并不重要),它会检查是否有一个节点已如果没有一个新的节点将它创建为第一个节点。现在它检查密钥是否小于第一个节点的密钥,如果是的话,它会将它作为左节点(如果还没有的话),如果有一个它将迭代并重新检查它。较大的键/右节点相同。如果密钥等于当前节点的密钥,它将覆盖该节点。
如果我使用类似int的东西,此方法正在工作。 现在我想做它作为一个通用的,所以我想从Comparable接口添加compareTo,因为我可以检查密钥是否小于,等于或大于当前节点的密钥。我知道我必须使用这些键,但我无法自己编写任何compareTo方法。我不知道如何让它工作。目前我使用我的程序
@Override
public int compareTo(TreeNode<Type> node) {
//method
}
属性是: 节点(第一,以前,左,右),键,值 类型键,值 节点myNodes(上,...)
classdefinitions:
public class Tree<Type> {
...
public class TreeNode<Type extends Comparable<Type>>{
...
}
public int compareTo(TreeNode<Type> Node){
//method
}
}
基本上,您不必实现compareTo,因为已经为Java中的数字和字符串类型实现了Comparable接口,并且您可以为任何其他**特定的**自定义类编写任何其他实现。在树中,你只需要使用它。但是,由于我无法理解你问题的最后部分,所以试图更清楚。 – 2015-01-09 23:10:45
所以首先我不知道哪些类型会依赖于我的老师。所以我必须得到一个compareTo的通用版本,它比较两个节点的通用密钥并检查哪一个是“较小”或“较大” ”。最后一部分只是说明每个属性是如何定义的 – NhatNienne 2015-01-09 23:13:21