打印java中trie树中的所有单词,该树存在于以前插入的树中
嗯。我试图打印我的trie树中的所有单词,它们的(endOfWord)是正确的,但是我在互联网上搜索到的所有单词都是可以打印的。以下是我的java代码:打印java中trie树中的所有单词,该树存在于以前插入的树中,java,depth-first-search,trie,Java,Depth First Search,Trie,嗯。我试图打印我的trie树中的所有单词,它们的(endOfWord)是正确的,但是我在互联网上搜索到的所有单词都是可以打印的。以下是我的java代码: public class Trie { static final int ALPHABETS_SIZE = 11; static int counter = 0; static class TrieNode { TrieNode[] children; boolean isEndOfWor
public class Trie {
static final int ALPHABETS_SIZE = 11;
static int counter = 0;
static class TrieNode {
TrieNode[] children;
boolean isEndOfWord;
TrieNode() {
isEndOfWord = false;
for (int i = 0; i < ALPHABETS_SIZE; i++) {
children[i] = null;
}
}
static TrieNode root;
static void insert(String key) {
int level;
int length = key.length();
int index;
counter++;
TrieNode pCrawl = root;
for (level = 0; level < length; level++) {
if (key.charAt(level) == 'A') {
index = 11;
} else {
index = key.charAt(level) - '0';
}
if (pCrawl.children[index] == null)
pCrawl.children[index] = new TrieNode();
pCrawl = pCrawl.children[index];
}
pCrawl.isEndOfWord = true;
}
}
public static void print(){
}
}
公共类Trie{
静态最终整数字母\u大小=11;
静态整数计数器=0;
静态三级管{
三元组[]儿童;
布尔isEndOfWord;
三节点(){
isEndOfWord=假;
对于(int i=0;i
将要添加到trie的整个字符串如下所示:
A1A23A541A0或A388A1
我希望有人能回答我如何使用DFS算法做到这一点。
感谢您抽出时间。以上代码是否有效?如果不初始化children,您正在设置值?我还没有初始化它,但稍后将在我的主函数中进行初始化。我只需要一种正确打印它们的方法那是你贴在那里的一大块代码!也许你可以在你的帖子中只包含你认为出错的部分代码?好的,Sacha,我改变了它。我不清楚这个要求。请解释并添加测试数据和预期结果。