3

In 1973 Weiner gave the first linear-time construction of suffix trees. The algorithm was simplified in 1976 by McCreight, and in 1995 by Ukkonen. Nevertheless, I find Ukkonen's algorithm relatively involved conceptually.

Has there been simplifications to Ukkonen's algorithm since 1995?

Bo Persson
  • 90,663
  • 31
  • 146
  • 203
Randomblue
  • 112,777
  • 145
  • 353
  • 547

2 Answers2

2

A more direct answer to the original question is the top-down (and lazy) suffix tree construction by Giegerich, Kurtz, Stoye: https://pub.uni-bielefeld.de/luur/download?func=downloadFile&recordOId=1610397&fileOId=2311132

In addition, suffix arrays (as mentioned in the previous answer) are not only easier to construct, but they can be enhanced so as to emulate anything you'd expect from a suffix tree: http://www.daimi.au.dk/~cstorm/courses/StrAlg_e04/papers/KurtzOthers2004_EnhancedSuffixArrays.pdf

Since the data structures involved in an enhanced suffix array can be compressed, compressed (emulated) suffix trees become possible: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.79.8644&rep=rep1&type=pdf

jogojapan
  • 68,383
  • 11
  • 101
  • 131
1

It's not a direct answer, however it can help you.

Last year, while working on the subject, I ended using suffix-arrays instead of suffix-trees, and IIRC, I used the paper "An incomplex algorithm for fast suffix array construction " KB Schürmann (2007) [1] as a reference. IIRC, it's a two pass linear algorithm to build suffix-arrays.

[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

Scharron
  • 17,233
  • 6
  • 44
  • 63
  • The algorithm has empirically been shown to perform extremely well, but as far as I know (and stated by the authors) it has not been proven to be of linear complexity. – jogojapan Feb 18 '12 at 13:29
  • Oh, was it some kind of trade-off to be more easy to build ? (As I said, I read it one year ago :-) ) – Scharron Feb 20 '12 at 09:03