Java 计算trie数据结构中节点的出现次数
我有一个trie,其中每个节点都是一个对象Java 计算trie数据结构中节点的出现次数,java,trie,Java,Trie,我有一个trie,其中每个节点都是一个对象triode,如下所示: public char content; public double count; public LinkedList<TrieNode> childList; 但结果被高估了,返回的事件比实际发生的要多。 为什么?您多次添加到occ,因为您将其作为参数传递。 应使用局部变量: public int occurrencesOfChar(TrieNode node, char c) { int occ =
triode
,如下所示:
public char content;
public double count;
public LinkedList<TrieNode> childList;
但结果被高估了,返回的事件比实际发生的要多。
为什么?您多次添加到
occ
,因为您将其作为参数传递。
应使用局部变量:
public int occurrencesOfChar(TrieNode node, char c) {
int occ = 0;
for(TrieNode child : node.childList) {
if(child.content == c) {
occ += child.count;
}
occ += occurrencesOfChar(child, c);
}
return occ;
}
@Martin Broadhurst不,因为在
count
字段中,每个节点可以是一个大于1的数字。谢谢Martin Broadhurst!
public int occurrencesOfChar(TrieNode node, char c) {
int occ = 0;
for(TrieNode child : node.childList) {
if(child.content == c) {
occ += child.count;
}
occ += occurrencesOfChar(child, c);
}
return occ;
}