1973年,韦纳给出了第一个后缀树的线性时间构造。该算法由McCreight在1976年简化,在1995年由Ukkonen简化。然而,我发现Ukkonen的算法在概念上相对较为复杂。
自1995年以来,Ukkonen的算法是否有过简化?
答案 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,这是一个构建后缀数组的双通线性算法。