Java 从树打印匹配

Java 从树打印匹配,java,Java,我正试图从一个文本文件的字典中创建一个“单词完成”树java程序,但我不确定从这里可以走到哪里。单词完成程序将匹配以输入的字符串开头的任何单词。我是java/编程新手。我将树设计为一个多路径树,每个节点存储一个字符作为字母和一个布尔变量,以指示它是否是单词的结尾(除其他外) 我正试图查看我在树中读取的文件是否正常工作。但是,当我试图打印我的树时,它无法正常工作。它没有在第一个单词后的每个单词中正确显示第一个字母。为了测试的目的,我没有从文件中读取,而是简单地向树中添加了4个单词(Base、Bas

我正试图从一个文本文件的字典中创建一个“单词完成”树java程序,但我不确定从这里可以走到哪里。单词完成程序将匹配以输入的字符串开头的任何单词。我是java/编程新手。我将树设计为一个多路径树,每个节点存储一个字符作为字母和一个布尔变量,以指示它是否是单词的结尾(除其他外)

我正试图查看我在树中读取的文件是否正常工作。但是,当我试图打印我的树时,它无法正常工作。它没有在第一个单词后的每个单词中正确显示第一个字母。为了测试的目的,我没有从文件中读取,而是简单地向树中添加了4个单词(Base、Base、Ma、Matthew)

所以我的问题是,有人能告诉我为什么打印不正确,以及为了完成单词补全,我接下来需要做什么吗

提前非常感谢大家花时间帮助我解决问题

就是这一部分

    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
是下一个字母(从当前节点的角度来看),换句话说


尝试添加更多具有常用起始子字符串的单词,以便轻松理解我的观点。

请显示您的期望值和实际值output@Romski编辑。非常感谢。嘿,谢谢你的回复。打印现在是一个问题,但当我试图让程序实现其目的时,你的建议不是一个问题吗?这就是单词竞争。我可以看到单词完成有两种方式:1)当有人开始打字时,你发现你有一些相同开头的单词,你会重复(用另一个打印的字母)询问输入的单词是否是推荐的(你从字典中认出的)。2) 当你知道键入的单词是字典中某个单词的开头(没有歧义),你就插入这个单词。同样的开头也正是我所指的。您是否介意根据我的代码为我提供一个示例,说明如何做到这一点?非常感谢您在第一种情况下,这正是预期的行为,您应该输出他们的第一个字母中的所有单词。在后者中,这并没有什么区别,因为您只需要打印一个单词(您可以将其替换为键入的单词),并且您不需要此功能。你说我不需要这个功能是什么意思?为了澄清,用户输入一个单词,我在我的树中搜索所有以该单词开头的单词或与之完全匹配的单词。再次感谢