我正在开发一个必须找到最长重复子字符串的php脚本。我找到了这个后缀树的东西。我正在尝试实现Ukkonnen的算法,但我不知道何时以及如何扩展树。
如果我有一个不在树中的新charachter但我必须从根目录创建一个新节点和egde,这是没关系的。但是,我怎么知道我是否必须分开一个边缘?
我发现了它的一个C ++实现(link),我试图把它翻译成php,但我想我已经有了一个typeo因为它给出了一个几乎好的结果,问题是我可以'修好它,直到我完全理解它为止......
我阅读了十几个关于后缀树的描述,但其中一些不太深入,其他人在第二次传说后让我头疼。
以下是我现在拥有的代码:Suffix-tree.php(抱歉,但这位编辑无法接受)我使用此site来检查结果。
所以任何建议都会受到赞赏......
编辑:我从上述网站上发现的JavaScript内容重写了它。以下是源代码的链接:Suffix-Tree v0.1答案 0 :(得分:1)
数据压缩专家Matt Mahoney给出了一个很好的解释。但我也不了解实施,这很困难。仅供参考我设法运行后缀树php扩展。如果有帮助,您可以在sourceforge找到我的代码。我很乐意看到你的最终代码!