We describe a dynamic version of the z-fast trie, a new data structure inspired by the research started by the van Emde Boas trees and followed by the development of y-fast tries. The dynamic z-fast trie is a very simple, uniform data structure: given a set S of n variable-length strings, it is formed by a standard compacted trie on S (with two additional pointers per node), endowed with a dictionary of size n−1. With this simple setup, the dynamic z-fast trie provides predecessors/successors in time O(log max{ |x|, |x+|, |x-| }) (x± is the successor/predecessor of x in S) for strings of length linear in the machine-word size w. Prefix queries are answered in time O(log|x|+k), and range queries in time O(log max{ |x|, |y|, |x-|, |y+| }+k), where k is the number of elements in the output and x (and y) represent the input of the prefix (range) queries. Updates are performed within the same bounds in expectation (or with high probability using an appropriate dictionary). We then show a simple modification that makes it possible to handle strings of length up to 2^w; in this case, predecessor/successor queries and updates are supported in O(|x|/w + log max{ |x|, |x+|, |x-| }) time, (and O(|x|/B + log max{ |x|, |x+|, |x-| }) I/Os in the cache-oblivious model) with high probability. The space occupied by a dynamic z-fast trie, beside that necessary to store S, is just of 12n pointers, n integers and, in the “long string” case, O(n) signatures of O(w) bits each.

Dynamic z-fast tries / D. Belazzougui, P. Boldi, S. Vigna - In: String processing and information retrieval : 17th international symposium, SPIRE 2010, Los Cabos, Mexico, October 11-13, 2010 : proceedings / [a cura di] E. Chávez, S. Lonardi. - Berlin : Springer, 2010. - ISBN 9783642163203. - pp. 159-172 (( Intervento presentato al 17. convegno International Symposium on String Processing and Information Retrieval tenutosi a Los Cabos, Mexico nel 2010 [10.1007/978-3-642-16321-0_15].

Dynamic z-fast tries

P. Boldi
Secondo
;
S. Vigna
Ultimo
2010

Abstract

We describe a dynamic version of the z-fast trie, a new data structure inspired by the research started by the van Emde Boas trees and followed by the development of y-fast tries. The dynamic z-fast trie is a very simple, uniform data structure: given a set S of n variable-length strings, it is formed by a standard compacted trie on S (with two additional pointers per node), endowed with a dictionary of size n−1. With this simple setup, the dynamic z-fast trie provides predecessors/successors in time O(log max{ |x|, |x+|, |x-| }) (x± is the successor/predecessor of x in S) for strings of length linear in the machine-word size w. Prefix queries are answered in time O(log|x|+k), and range queries in time O(log max{ |x|, |y|, |x-|, |y+| }+k), where k is the number of elements in the output and x (and y) represent the input of the prefix (range) queries. Updates are performed within the same bounds in expectation (or with high probability using an appropriate dictionary). We then show a simple modification that makes it possible to handle strings of length up to 2^w; in this case, predecessor/successor queries and updates are supported in O(|x|/w + log max{ |x|, |x+|, |x-| }) time, (and O(|x|/B + log max{ |x|, |x+|, |x-| }) I/Os in the cache-oblivious model) with high probability. The space occupied by a dynamic z-fast trie, beside that necessary to store S, is just of 12n pointers, n integers and, in the “long string” case, O(n) signatures of O(w) bits each.
Settore INF/01 - Informatica
2010
Book Part (author)
File in questo prodotto:
Non ci sono file associati a questo prodotto.
Pubblicazioni consigliate

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/2434/154378
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus 25
  • ???jsp.display-item.citation.isi??? 15
social impact