【发布时间】:2016-12-27 07:25:41
【问题描述】:
鉴于 trie 具有这样的节点:
struct TrieNode {
map<char, TrieNode> children;
bool endOfWord = false;
TrieNode() {}
};
endOfWord 布尔值在词尾为真会更好吗(案例 1)
c-a-[t] <--- endOfWord = true;
或者创建一个空的 char 节点并在那里有 endOfWord(案例 2)
c-a-t-[ ] <--- endOfWord = true;
从我看到的所有教程中,他们推荐后一种选择,但这不会让事情变得更加混乱吗?对于包含 beckoned 和 beckon 的 trie,案例 1 看起来像
b-e-c-k-o-[n]-e-[d]
但情况 2 会有
b-e-c-k-o-n-[e]-d-[ ]
或者这仅仅是我的 trie 是如何实现的?
【问题讨论】:
标签: c++ data-structures