Ukkonen的后缀树算法,有什么必要?
是的,我读过这样的内容:简单英语中的Ukkonen后缀树算法?
这是对算法的一个很好的解释,但它并不是算法本身,而是杀死我,而是用来实现它的数据结构。
我需要的数据结构尽可能最小和尽可能快,我看到许多实现仅使用节点,一些只有边,一些有边和节点等。然后有变化,我读的一个网站声称,一个节点不需要指向其父节点的指针,而其他地方则不需要考虑如何管理节点的子节点。
我的想法是使用int start和int * end(指向当前结束或阶段i)的Node结构。 每个节点都有一个后缀链接指针,一个指向其父节点的指针,以及一个指向包含其子节点的向量的指针。
我的问题是,这些东西是否足以实现后缀树? 我能以任何方式最小化它吗? 我还没有看到向导中的孩子的实现,所以我对我自己的想法持怀疑态度。 有人能解释一下用这种方式只用节点来实现一个后缀树需要什么?
当我必须实施该算法时,更好的解释文档是最初的Ukkonen论文,并且有一个更新的图像。
是的,在这个文件中都是内部实现Ukkonen的后缀树算法。
以下可能会有所帮助:
乌克兰的后缀树建设
我们在这里
1.开始,结束代表边缘标签
2.后缀链接
3.为儿童设计一个阵列