我了解ukkonen's algorithm。我只是很好奇如何将它扩展为有多个字符串(以特殊字符“$”结尾)。Ukkonen的算法通用后缀树
我在某处读到给定字符串s1(称为“abcddefx $”)和s2(称为“abddefgh $”),我应该通过ukkonen的算法正常插入s1。然后用s2遍历树。那就是我应该在树中搜索s2。 一旦我到达搜索结束的节点(“ab”,在'b'之后),我应该从那里恢复ukkonen的算法。
我明白这背后的基本逻辑。但我很好奇的是,旧的后缀链接会发生什么。他们仍然有效吗? 另外我很困惑我的三重(active_node,active_length,余数)应该是(节点代表“ab”,0,0),因为我开始新的传球?
使用不同的特殊字符。 – nhahtdh
@nhahtdh虽然这将导致绝对正确的结果,但恐怕我不能使用不同的特殊字符为我添加到树中的每个字符串。 – Fluvid
这是多个字符串的“标准”解决方案。 – nhahtdh