我正在尝试从字典文件中创建一个“单词完成”树java程序,但我不知道从哪里开始。单词完成程序将匹配以输入的字符串开头的任何单词。我是java /编程的新手。我将树设计为多路树,每个节点存储一个字符作为字母和一个布尔变量,以指示它是否是单词的结尾(除其他外)。
我正处于试图查看我在文件中读取文件是否正常工作的位置。但是,当我尝试打印我的树时,它无法正常工作。在第一个单词之后的每个单词中都没有正确显示第一个字母。为了测试目的,我只是向树中添加4个单词(Base,Basement,Ma,Matthew),而不是从文件中读取。
所以我的问题是,任何人都可以告诉我为什么它打印不正确以及我需要做什么才能完成单词的完成?
非常感谢大家花时间帮我解决问题
答案 0 :(得分:0)
这是这部分
while(t!=null) {
if(t.down!=null && t.right!=null) {
//System.out.println(t.letter + " children");
//System.out.print(t.letter);
print(t.down);
}
t=t.right;
当您遇到另一个要打印的单词时,请从t.down
开始。例如,您可以将所有字母存储在相互堆叠的该节点上,打印它们,然后继续从树中打印其他字母。
这里的问题是:t.down
是下一个字母(从当前节点的角度来看)。
尝试使用常见的起始子字符串添加更多单词,以便轻松理解我的观点。