这个trie java程序有效吗?

时间:2015-10-02 07:58:34

标签: java data-structures trie

还有其他有效的解决方案吗? 我必须更换固定大小的对象数组吗? 你如何根据时间和空间效率在1-10的等级上评价我的课程? 我怎样才能使这个程序高效?我想用它来创建字典? 提前谢谢。

 public class Dict {
        boolean isWord;
        Dict obj[];
        Dict()
        {
            obj=new Dict[26];// as there are 26 alphabets in english
            isWord=false;
        }
        Dict insertWord(Dict Node,String str, int it) // insert a word in trie
        {
            if(it<str.length())
            {
            int Linkno=((int)(str.charAt(it)))-97; // 97 is the ascii value of 'a'.
            if(Node.obj[Linkno]==null)
            {
                Node.obj[Linkno]=new Dict();
            }
            insertWord(Node.obj[Linkno],str,it+1);
            }
            else
            {
                Node.isWord=true;
            }
            return Node;
        }
        void displayAll(Dict Node,String str) //display all the words stored in trie
        {
            for(int i=0;i<26;i++)
            {
                if(Node.obj[i]!=null)
                {
                    if(Node.obj[i].isWord==true)
                        System.out.println(str+((char)(i+97)));
                    displayAll(Node.obj[i],(str+((char)(i+97))));
                }
            }
        }
        public static void main(String ar[])
        {
            Dict root=new Dict();
            root.insertWord(root,"trasaction",0);
            root.insertWord(root,"transformation",0);
            root.insertWord(root,"transmission",0);
            root.insertWord(root,"trance",0);
            root.insertWord(root,"trap",0);
            root.displayAll(root,"");
        }
    }

0 个答案:

没有答案