Suffix Trees and their Applications in String Algorithms∗ Roberto Grossi† Giuseppe F. Italiano‡ Dipartimento di Sistemi e Informatica Dipartimento di Matematica Applicata ed Informatica Universit`adi Firenze Universit`a“Ca’ Foscari” di Venezia 50134 Firenze, Italy Venezia, Italy Keywords: Pattern matching, String algorithms, Suffix tree. Abstract: 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. ∗Work partially supported by the ESPRIT BRA ALCOM II under contract no. 7141 and by the Italian MURST Project “Algoritmi, Modelli di Calcolo e Strutture Informative”. †Part of this work was done while the author was visiting AT&T Bell Laboratories. Email:
[email protected] ‡Work supported in part by the Commission of the European Communities under ESPRIT LTR Project no. 20244 (ALCOM–IT), by the Italian MURST Project “Efficienza di Algoritmi e Pro- getto di Strutture Informative”, and by a Research Grant from University of Venice “Ca’ Foscari”. Part of this work was done while at University of Salerno. Email:
[email protected].