0

我正在研究各种“前缀查找”数据结构,例如 Tries 和 Radix Tries (Patricia Tries)。

至此,我对 Try 和 radix Try 都有了深刻的理解,并且对它们的用例也有了很好的理解。

然而,一个问题突然出现在我身上:使用常规 trie 是否比压缩 trie(例如 radix trie)有任何优势?

常规的 trie 实现起来很简单:它为每个节点存储一个字符。Patricia Trie 实现起来有点困难:它是“压缩的”,因为每个节点都包含一个完整的字符串,并且前缀比较是使用按位匹配完成的。

由于 Patricia Trie 更节省空间,并且不会牺牲查找速度,因此是否有使用每个节点都包含一个字母的常规(非压缩)Trie 的用例?

我能想到的唯一用例是,如果您的“字符串”不是常规字符串(如更复杂对象的数组),因此无法使用逐位比较进行比较。

常规(非压缩)Trie 还有其他用例吗?

4

2 回答 2

1

最有可能在压缩 trie 中插入太昂贵时。

于 2014-09-16T17:56:22.377 回答
0

它们只是更容易理解并使算法的分析/设计更容易。因此,在引入压缩树之前,它们非常适合用于教育目的

于 2014-09-29T13:18:21.743 回答