Linear-size suffix tries

Chiara Epifanio, Maxime Crochemore, Filippo Mignosi, Roberto Grossi

Risultato della ricerca: Article

3 Citazioni (Scopus)

Abstract

Suffix trees are highly regarded data structures for text indexing and string algorithms [MCreight 76, Weiner 73]. For any given string w of length n=|w|, a suffix tree for w takes O(n) nodes and links. It is often presented as a compacted version of a suffix trie for w, where the latter is the trie (or digital search tree) built on the suffixes of w. Here the compaction process replaces each maximal chain of unary nodes with a single arc. For this, the suffix tree requires that the labels of its arcs are substrings encoded as pointers to w (or equivalent information). On the contrary, the arcs of the suffix trie are labeled by single symbols but there can be Θ(n2) nodes and links for suffix tries in the worst case because of their unary nodes. It is an interesting question if the suffix trie can be stored using O(n) nodes. We present the linear-size suffix trie, which guarantees O(n) nodes. We use a new technique for reducing the number of unary nodes to O(n), that stems from some results on antidictionaries. For instance, by using the linear-size suffix trie, we are able to check whether a pattern p of length m=|p| occurs in w in O(mlog|Σ|) time and we can find the longest common substring of two strings w1 and w2 in O((|w1|+|w2|)log|Σ|) time for an alphabet Σ.
Lingua originaleEnglish
pagine (da-a)171-178
Numero di pagine8
RivistaDefault journal
Volume638
Stato di pubblicazionePublished - 2016

Fingerprint

Suffix
Data structures
Labels
Compaction
Suffix Tree
Vertex of a graph
Unary
Arc of a curve
Strings
Text Indexing
String Algorithms
Search Trees
Data Structures

All Science Journal Classification (ASJC) codes

  • Theoretical Computer Science
  • Computer Science(all)

Cita questo

Epifanio, C., Crochemore, M., Mignosi, F., & Grossi, R. (2016). Linear-size suffix tries. Default journal, 638, 171-178.

Linear-size suffix tries. / Epifanio, Chiara; Crochemore, Maxime; Mignosi, Filippo; Grossi, Roberto.

In: Default journal, Vol. 638, 2016, pag. 171-178.

Risultato della ricerca: Article

Epifanio, C, Crochemore, M, Mignosi, F & Grossi, R 2016, 'Linear-size suffix tries', Default journal, vol. 638, pagg. 171-178.
Epifanio C, Crochemore M, Mignosi F, Grossi R. Linear-size suffix tries. Default journal. 2016;638:171-178.
Epifanio, Chiara ; Crochemore, Maxime ; Mignosi, Filippo ; Grossi, Roberto. / Linear-size suffix tries. In: Default journal. 2016 ; Vol. 638. pagg. 171-178.
@article{f9c3ffd842424ff88f0a73b3ec7cd3ef,
title = "Linear-size suffix tries",
abstract = "Suffix trees are highly regarded data structures for text indexing and string algorithms [MCreight 76, Weiner 73]. For any given string w of length n=|w|, a suffix tree for w takes O(n) nodes and links. It is often presented as a compacted version of a suffix trie for w, where the latter is the trie (or digital search tree) built on the suffixes of w. Here the compaction process replaces each maximal chain of unary nodes with a single arc. For this, the suffix tree requires that the labels of its arcs are substrings encoded as pointers to w (or equivalent information). On the contrary, the arcs of the suffix trie are labeled by single symbols but there can be Θ(n2) nodes and links for suffix tries in the worst case because of their unary nodes. It is an interesting question if the suffix trie can be stored using O(n) nodes. We present the linear-size suffix trie, which guarantees O(n) nodes. We use a new technique for reducing the number of unary nodes to O(n), that stems from some results on antidictionaries. For instance, by using the linear-size suffix trie, we are able to check whether a pattern p of length m=|p| occurs in w in O(mlog|Σ|) time and we can find the longest common substring of two strings w1 and w2 in O((|w1|+|w2|)log|Σ|) time for an alphabet Σ.",
author = "Chiara Epifanio and Maxime Crochemore and Filippo Mignosi and Roberto Grossi",
year = "2016",
language = "English",
volume = "638",
pages = "171--178",
journal = "Default journal",

}

TY - JOUR

T1 - Linear-size suffix tries

AU - Epifanio, Chiara

AU - Crochemore, Maxime

AU - Mignosi, Filippo

AU - Grossi, Roberto

PY - 2016

Y1 - 2016

N2 - Suffix trees are highly regarded data structures for text indexing and string algorithms [MCreight 76, Weiner 73]. For any given string w of length n=|w|, a suffix tree for w takes O(n) nodes and links. It is often presented as a compacted version of a suffix trie for w, where the latter is the trie (or digital search tree) built on the suffixes of w. Here the compaction process replaces each maximal chain of unary nodes with a single arc. For this, the suffix tree requires that the labels of its arcs are substrings encoded as pointers to w (or equivalent information). On the contrary, the arcs of the suffix trie are labeled by single symbols but there can be Θ(n2) nodes and links for suffix tries in the worst case because of their unary nodes. It is an interesting question if the suffix trie can be stored using O(n) nodes. We present the linear-size suffix trie, which guarantees O(n) nodes. We use a new technique for reducing the number of unary nodes to O(n), that stems from some results on antidictionaries. For instance, by using the linear-size suffix trie, we are able to check whether a pattern p of length m=|p| occurs in w in O(mlog|Σ|) time and we can find the longest common substring of two strings w1 and w2 in O((|w1|+|w2|)log|Σ|) time for an alphabet Σ.

AB - Suffix trees are highly regarded data structures for text indexing and string algorithms [MCreight 76, Weiner 73]. For any given string w of length n=|w|, a suffix tree for w takes O(n) nodes and links. It is often presented as a compacted version of a suffix trie for w, where the latter is the trie (or digital search tree) built on the suffixes of w. Here the compaction process replaces each maximal chain of unary nodes with a single arc. For this, the suffix tree requires that the labels of its arcs are substrings encoded as pointers to w (or equivalent information). On the contrary, the arcs of the suffix trie are labeled by single symbols but there can be Θ(n2) nodes and links for suffix tries in the worst case because of their unary nodes. It is an interesting question if the suffix trie can be stored using O(n) nodes. We present the linear-size suffix trie, which guarantees O(n) nodes. We use a new technique for reducing the number of unary nodes to O(n), that stems from some results on antidictionaries. For instance, by using the linear-size suffix trie, we are able to check whether a pattern p of length m=|p| occurs in w in O(mlog|Σ|) time and we can find the longest common substring of two strings w1 and w2 in O((|w1|+|w2|)log|Σ|) time for an alphabet Σ.

UR - http://hdl.handle.net/10447/213681

M3 - Article

VL - 638

SP - 171

EP - 178

JO - Default journal

JF - Default journal

ER -