Ukkonen的后缀树算法,有什么必要?

Ukkonen's suffix tree algorithm, what is necessary?

本文关键字:什么 后缀 算法 Ukkonen      更新时间:2023-10-16

是的,我读过这个:Ukkonen';s后缀树算法?

这是对算法的一个很好的解释,但与其说是算法本身杀死了我,不如说是用于实现它的数据结构

我需要数据结构尽可能小、尽可能快,我见过许多只使用节点的实现,有些只使用边,有些带有边和节点,等等。还有一些变体,我正在阅读的一个网站声称,节点不需要指向其父节点的指针,而其他地方则不考虑如何管理节点的子节点。

我的想法是使用一个具有int start和int*end(指向当前结束或阶段i)的Node结构。每个节点都有一个后缀链接指针、一个指向其父节点的指针和一个指向包含其子节点的向量的指针。

我的问题是,这些东西对于实现后缀树来说足够和必要吗?我能以任何方式将其最小化吗?我还没有看到在矢量中实现儿童,所以我对自己的想法持怀疑态度。有人能解释一下只使用节点以这种方式实现后缀树需要什么吗?

以下内容可能会有所帮助:

Ukkonen的后缀树构造

这里有
1.开始,结束表示边缘标签
2.后缀链接
3.用于子的数组

当我必须实现该算法时,解释得更好的文档是原始的Ukkonen论文,还有一篇更新的图像文档。

是的,在这个文件里面都实现了Ukkonen的后缀树算法。