还有其他有效的解决方案吗? 我必须更换固定大小的对象数组吗? 你如何根据时间和空间效率在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,"");
}
}