Results 1 
4 of
4
OnLine Construction of Suffix Trees
, 1995
"... An online algorithm is presented for constructing the suffix tree for a given string in time linear in the length of the string. The new algorithm has the desirable property of processing the string symbol by symbol from left to right. It has always the suffix tree for the scanned part of the strin ..."
Abstract

Cited by 437 (2 self)
 Add to MetaCart
An online algorithm is presented for constructing the suffix tree for a given string in time linear in the length of the string. The new algorithm has the desirable property of processing the string symbol by symbol from left to right. It has always the suffix tree for the scanned part of the string ready. The method is developed as a lineartime version of a very simple algorithm for (quadratic size) suffix tries. Regardless of its quadratic worstcase this latter algorithm can be a good practical method when the string is not too long. Another variation of this method is shown to give in a natural way the wellknown algorithms for constructing suffix automata (DAWGs).
A Comparison of Imperative and Purely Functional Suffix Tree Constructions
 Science of Computer Programming
, 1995
"... We explore the design space of implementing suffix tree algorithms in the functional paradigm. We review the linear time and space algorithms of McCreight and Ukkonen. Based on a new terminology of nested suffixes and nested prefixes, we give a simpler and more declarative explanation of these algor ..."
Abstract

Cited by 22 (6 self)
 Add to MetaCart
We explore the design space of implementing suffix tree algorithms in the functional paradigm. We review the linear time and space algorithms of McCreight and Ukkonen. Based on a new terminology of nested suffixes and nested prefixes, we give a simpler and more declarative explanation of these algorithms than was previously known. We design two "naive" versions of these algorithms which are not linear time, but use simpler data structures, and can be implemented in a purely functional style. Furthermore, we present a new, "lazy" suffix tree construction which is even simpler. We evaluate both imperative and functional implementations of these algorithms. Our results show that the naive algorithms perform very favourably, and in particular, the lazy construction compares very well to all the others. 1 Introduction Suffix trees are the method of choice when a large sequence of symbols, the "text", is to be searched frequently for occurrences of short sequences, the "patterns". Given tha...
Suffix Trees and their Applications in String Algorithms
"... The suffix tree is a compacted trie that stores all suffixes of a given text string. This data structure has been intensively employed in pattern matching on strings and trees, with a wide range of applications, such as molecular biology, data processing, text editing, term rewriting, interpreter ..."
Abstract

Cited by 18 (0 self)
 Add to MetaCart
The suffix tree is a compacted trie that stores all suffixes of a given text string. This data structure has been intensively employed in pattern matching on strings and trees, with a wide range of applications, such as molecular biology, data processing, text editing, term rewriting, interpreter design, information retrieval, abstract data types and many others. In this paper, we survey some applications of suffix trees and some algorithmic techniques for their construction. Special emphasis is given to the most recent developments in this area, such as parallel algorithms for suffix tree construction and generalizations of suffix trees to higher dimensions, which are important in multidimensional pattern matching.
On the Construction and Application of Compressed Text Indexes
, 2004
"... Text indexing involves the preprocessing of a text to build a data structure which enables efficient matching of this text against any pattern afterwards. Traditional indexes like suffix trees and suffix arrays offer superb matching performance in theory, and have found numerous applications in pra ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Text indexing involves the preprocessing of a text to build a data structure which enables efficient matching of this text against any pattern afterwards. Traditional indexes like suffix trees and suffix arrays offer superb matching performance in theory, and have found numerous applications in practice. However, they consume a lot of space. For a text of length n, they have a space requirement of O(n log n) bits, and this demanding space requirement has limited their use for indexing long texts such as DNA sequences. Recent developments, notably the Compressed Suffix Arrays (CSA) of Grossi and Vitter, and the FMindex of Ferragina and Manzini, have offered hope of reducing the space requirements of traditional indexes. These two indexes require space linear to the number of bits of the original text, and the matching performance is only slowed down by a polylog(n) factor. However, for such an index to be useful, it must have a spaceefficient construction. In this study, we improve an existing construction algorithm for the CSA, and show that the CSA and FMindex can be constructed in O(n log n) time using optimal space. We also