Algorithm 后缀链接和失败链接之间有什么区别?

Algorithm 后缀链接和失败链接之间有什么区别?,algorithm,pattern-matching,suffix-tree,exact-match,aho-corasick,Algorithm,Pattern Matching,Suffix Tree,Exact Match,Aho Corasick,我在这学期学习算法,并且已经阅读了关于构建后缀树的和 这两本书我都读了,但除了失败链接检查前缀和后缀链接检查后缀外,我无法理解这两本书的主要基本区别 这两种算法的区别是什么?我认为您对后缀链接和失败链接的理解是不正确的。在这两种情况下,后缀/失败链接都是从trie/后缀树中的一个节点到trie/后缀树中另一个节点的指针,具有以下属性:如果原始节点表示字符串x,然后,由后缀/失败链接指向的节点编码的字符串y是y是字符串x的最长可能后缀的节点 这两种算法之间的主要区别在于算法产生了什么,而不是后缀/

我在这学期学习算法,并且已经阅读了关于构建后缀树的和

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


这两种算法的区别是什么?

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

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


希望这有帮助

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

您已经有了很好的答案。如果你还没读过,我建议你看看。它非常清楚地解释了您正在努力解决的概念,并逐渐地(使用“简单”的trie,然后使用实际的后缀树)Downvoter-对于这个答案,有什么特别的地方我应该尝试改进吗?:我不确定它有什么帮助@Phpdna您有什么特别想知道的吗?如果有帮助的话,我可以尝试用更多的信息更新答案。