0

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

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

所以我的问题是谁能告诉我为什么它不能正确打印以及我接下来需要做什么才能完成单词完成?

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

4

1 回答 1

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

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

于 2013-04-12T10:18:17.073 回答