在trie中插入有序字符

时间:2014-12-13 11:01:11

标签: java data-structures tree nodes

我正在trie树中编写一个插入方法,但是我想在字符之间保持顺序,但有一些错误,我无法知道,因为树的根仍然为空

public void insert (String name,TrieNode r)
{
    if(r==null && name.length()>0)
    {
        r=new TrieNode(name.charAt(0));
        if(name.length()>1)
         insert(name.substring(1),r.getFirstChild());
    }
    else if(r.getletter()==name.charAt(0))
    {
        name=removeFirstChar(name);
        insert(name,r.getFirstChild());
    }
    else
    {
        if(name.charAt(0) < r.getletter())
        {
            TrieNode n=new TrieNode(name.charAt(0));
            n.setNextSibling(r);
            r.setFirstChild(n);
        }
        else
            insert(name,r.getNextSibling());

    }
}

1 个答案:

答案 0 :(得分:0)

我不是Java专家,但只是阅读代码的前几行,我注意到您正在初始化r=new TrieNode(name.charAt(0));。这在Java中不起作用,因为对象是通过值而不是通过引用传递的,所以你基本上不能改变它们指向函数内部的内容。

阅读this文章了解详情。