后缀树和尝试有什么区别?

问题描述

后缀树可以看做是建立在trie之上的数据结构,在该结构中,您不仅可以将字符串本身添加到trie中,还可以添加该字符串的所有可能的后缀。例如,如果要在后缀树中索引 字符串,则可以使用以下字符串构建特里:

banana
anana
nana
ana
na
a

完成后,您可以搜索任何n-gram并查看它是否存在于索引字符串中。换句话说,n-gram搜索是字符串所有可能后缀的前缀搜索。

这是构建后缀树的最简单,最慢的方法。事实证明,此数据结构上有许多更高级的变体,它们既可以改善空间又可以改善构建时间。我对这一领域并不精通,没有一个概述,但是您可以从研究后缀数组或此类高级数据结构开始(第16和18节)。

解决方法

我正在阅读有关Tries通常称为Prefix树和的信息Suffix Trees
虽然我找到了的代码,Trie但找不到的示例Suffix Tree。我还感觉到,构建a的代码与a的代码Trie相同,Suffix Tree唯一的区别是在前一种情况下,我们存储前缀,而在后缀中。
这是真的?谁能帮我解决这个问题?示例代码将对您大有帮助!

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...