使用String作为BST键值

时间:2012-12-11 15:28:44

标签: java binary-search-tree

我有一个存储对象的二叉搜索树。为了向它插入对象,我使用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)但我真的不知道如何在这种情况下使用它。如果您有任何建议,我真的很感激。

1 个答案:

答案 0 :(得分:0)

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

d.getName().compareTo(tree.data.getName()) < 0表示左侧节点和    d.getName().compareTo(tree.data.getName()) >= 0表示正确的节点

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