我已经实现了一个基本的前缀树或“trie”。特里树由这样的节点组成:
// pseudo-code
struct node {
char c;
collection<node> childnodes;
};
假设我在我的 trie 中添加了以下词:“Apple”、“Ark”和“Cat”。现在,当我查找诸如“Ap”和“Ca”之类的前缀时,我的 trie 的“bool containsPrefix(string prefix)”方法将正确返回 true。
现在我正在实现方法“bool containsWholeWord(string word)”,它将为“Cat”和“Ark”返回true,但为“App”返回false(在上面的示例中)。
trie 中的节点具有某种“endOfWord”标志是否很常见? 这将有助于确定要查找的字符串是否实际上是输入到 trie 中的整个单词,而不仅仅是前缀。
干杯!