概念上简单的线性时间后缀树结构

时间:2012-02-17 15:59:21

标签: algorithm data-structures suffix-tree

1973年,韦纳给出了第一个后缀树的线性时间构造。该算法由McCreight在1976年简化,在1995年由Ukkonen简化。然而,我发现Ukkonen的算法在概念上相对较为复杂。

自1995年以来,Ukkonen的算法是否有过简化?

2 个答案:

答案 0 :(得分:2)

对原始问题的更直接的回答是Giegerich,Kurtz,Stoye的自上而下(和懒惰)后缀树构造:https://pub.uni-bielefeld.de/luur/download?func=downloadFile&recordOId=1610397&fileOId=2311132

此外,后缀数组(如上一个答案中所述)不仅更容易构造,而且可以增强它们以模拟后缀树中您期望的任何内容:http://www.daimi.au.dk/~cstorm/courses/StrAlg_e04/papers/KurtzOthers2004_EnhancedSuffixArrays.pdf

由于可以压缩增强后缀数组中涉及的数据结构,因此压缩(模拟)后缀树成为可能:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.79.8644&rep=rep1&type=pdf

答案 1 :(得分:1)

这不是一个直接的答案,但它可以帮助你。

去年,在研究这个主题时,我结束了使用后缀数组而不是后缀树,而IIRC,我使用了文章“用于快速后缀数组构造的非复杂算法”KBSchürmann(2007)[1]一个参考。 IIRC,这是一个构建后缀数组的双通线性算法。

[1] http://scholar.google.com/scholar?q=An+incomplex+algorithm+for+fast+suffix+array+construction+&hl=en&btnG=Search&as_sdt=1%2C5&as_sdtp=on