0

我有一个存储对象的二叉搜索树。为了向其中插入对象,我使用 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);
    }

但是,如果我想使用元素名称作为字符串的键值呢?我该怎么做?我应该使用 compareTo() 方法吗?我知道如何比较 string1.compareTo(string2) 但我真的不知道在这种情况下如何使用它。如果您有任何建议,我真的很感激。

4

1 回答 1

1

是的,String 实现了 Comparable,所以你可以这样做

d.getName().compareTo(tree.data.getName()) < 0对于左节点和 d.getName().compareTo(tree.data.getName()) >= 0右节点

另请注意,在您的原始代码中,当值相等时,您不会在树中插入任何内容。

于 2012-12-11T15:48:22.700 回答