【发布时间】:2016-06-23 00:35:47
【问题描述】:
我有一个 trie,其中每个节点都是一个对象 TrieNode,如下所示:
public char content;
public double count;
public LinkedList<TrieNode> childList;
我必须计算 trie 中特定字符的出现次数。
我想总结 count 我正在寻找的具有 content = char 的节点字段。
这就是我所做的:
int occ = occurrencesOfChar(0, root, c);
public int occurrencesOfChar(int occ, TrieNode node, char c) {
for(TrieNode child : node.childList) {
if(child.content == c) {
occ += child.count;
}
occ += occurrencesOfChar(occ, child, c);
}
return occ;
}
但结果被高估了,返回的出现次数比实际出现的次数多。 为什么?
【问题讨论】:
-
@MartinBroadhurst 嗯不,因为在每个节点的
count字段中可以是一个大于 1 的数字。