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

时间:2013-10-19 09:46:25

标签: algorithm pattern-matching suffix-tree exact-match aho-corasick

我正在学习本学期的算法,并阅读有关构建后缀树的Aho-Corasick string matching algorithmUkkonen's algorithm

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

这两种算法有什么区别?

2 个答案:

答案 0 :(得分:2)

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

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

希望这有帮助!

答案 1 :(得分:1)

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