带有子词的词的 trie 结构

Structure of a trie for a word with subwords

具有子词如 "icecream" 的单词的 trie 结构是什么(包含 'i'、'ice'、'cream'、'icecream') ; "businessman"(包含'bus'、'is'、'business'、'man'、'businessman')。

我知道那些没有像"inn"这样的子词的人会怎样,但我对上面的词感到困惑。

提前致谢。

您可以在您的 trie 节点中只包含一个布尔值 'isTerminal' 来指示单词是否在该节点处终止。 所以所有单词 'bus'、'business' 和 'businessman' 都将从节点 'b' 开始,并且沿着相同的路径。 'bus' 的 's'、'business' 的 's' 和 'businessman' 的 'n' 处的节点将具有 isTerminal = true。

虽然'man'包含在'businessman'中,但应将其视为从根的'm'子节点开始并在单独路径上的单词。

因此,所有单词都严格从顶部字母节点(根的子节点)开始,并在布尔值 isTerminal=true 指示的不同级别终止。