后缀链接和故障链接有什么区别



我正在学习这个学期的算法,并阅读了Aho-Corassick字符串匹配算法和Ukkonen构建后缀树的算法。

我读了它们,但无法理解这两者的主要基本区别,除了失败链接检查前缀和后缀链接检查后缀。

这两种算法有什么区别?

我认为您对后缀链接和失败链接的理解不正确。在这两种情况下,后缀/失败链接都是从 trie/后缀树中的一个节点到trie/后缀树中另一个节点的指针,具有以下属性:如果原始节点表示字符串 x,则由后缀/失败链接指向的节点编码的字符串 y 是 y 是字符串 x 的最长可能后缀的节点。

这两种算法之间的主要区别在于算法产生什么,而不是后缀/故障链接的含义。Aho-Corasick 生成了一个带有额外转换信息注释的 trie,可以尽快找到字符串集合的所有实例。生成的故障链接既用于算法的构建,也用于模式匹配步骤。Ukkonen 的算法生成一个后缀树,仅在构造期间使用后缀链接,而不是在树上的大多数查询期间使用后缀链接。

希望这有帮助!

区别在于后缀/字典链接就像指向子项父项的指针。失败链接来自广度优先搜索。这两个链接都是后缀。

最新更新