我有一个存储对象的二叉搜索树。为了向它插入对象,我使用Int值作为键。我通过调用像这样的对象的方法来获得该值:
public class Tree
{
// The root node of the tree which is null;
private Node root;
private double largest;
private Node insert (Node tree, Element d)
{
if (tree == null) return new Node(d);
else if (d.getPlaceInTable() < tree.data.getPlaceInTable()) tree.left = insert (tree.left, d);
else if (d.getPlaceInTable() > tree.data.getPlaceInTable()) tree.right = insert (tree.right, d);
return tree;
}
public void insert (Element d)
{
root = insert (root, d);
}
但是如果我想使用Elements name作为字符串的键值呢?我该怎么做?我应该使用compareTo()方法吗?我知道如何比较string1.compareTo(string2)但我真的不知道如何在这种情况下使用它。如果您有任何建议,我真的很感激。
答案 0 :(得分:0)
是的,String实现了Comparable,所以你可以做到
d.getName().compareTo(tree.data.getName()) < 0
表示左侧节点和
d.getName().compareTo(tree.data.getName()) >= 0
表示正确的节点
另请注意,在原始代码中,当值相等时,您不会在树中插入任何内容。