The cell probe complexity of dynamic data structures
STOC '89 Proceedings of the twenty-first annual ACM symposium on Theory of computing
Efficient suffix trees on secondary storage
Proceedings of the seventh annual ACM-SIAM symposium on Discrete algorithms
Representing dynamic binary trees succinctly
SODA '01 Proceedings of the twelfth annual ACM-SIAM symposium on Discrete algorithms
Succinct representation of balanced parentheses, static trees and planar graphs
FOCS '97 Proceedings of the 38th Annual Symposium on Foundations of Computer Science
Representing Trees of Higher Degree
Algorithmica
Succinct ordinal trees with level-ancestor queries
ACM Transactions on Algorithms (TALG)
Compressed indexes for dynamic text collections
ACM Transactions on Algorithms (TALG)
A Uniform Approach Towards Succinct Representation of Trees
SWAT '08 Proceedings of the 11th Scandinavian workshop on Algorithm Theory
FOCS '08 Proceedings of the 2008 49th Annual IEEE Symposium on Foundations of Computer Science
On the size of succinct indices
ESA'07 Proceedings of the 15th annual European conference on Algorithms
Fully-functional succinct trees
SODA '10 Proceedings of the twenty-first annual ACM-SIAM symposium on Discrete Algorithms
Optimal lower bounds for rank and select indexes
ICALP'06 Proceedings of the 33rd international conference on Automata, Languages and Programming - Volume Part I
Succinct ordinal trees based on tree covering
ICALP'07 Proceedings of the 34th international conference on Automata, Languages and Programming
A framework for dynamizing succinct data structures
ICALP'07 Proceedings of the 34th international conference on Automata, Languages and Programming
Succinct dynamic cardinal trees with constant time operations for small alphabet
TAMC'11 Proceedings of the 8th annual conference on Theory and applications of models of computation
Dynamizing succinct tree representations
SEA'12 Proceedings of the 11th international conference on Experimental Algorithms
Hi-index | 5.23 |
We study the problem of maintaining a dynamic ordered tree succinctly under updates of the following form: insertion or deletion of a leaf, insertion of a node on an edge (edge subdivision) or deletion of a node with only one child (the child becomes a child of its former grandparent). We allow satellite data of a fixed size to be associated to the nodes of the tree. We support update operations in constant amortized time and support access to satellite data and basic navigation operations in worst-case constant time; the basic navigation operations include parent, first/last-child, previous/next-child. These operations are moving from a node to its parent, leftmost/rightmost child, and its previous and next child respectively. We demonstrate that to efficiently support more extended operations, such as determining the i-th child of a node, rank of a child among its siblings, or size of the subtree rooted at a node, one requires a restrictive pattern for update strategy, for which we propose the finger-update model. In this model, updates are performed at the location of a finger that is only allowed to crawl on the tree between a child and a parent or between consecutive siblings. Under this model, we describe how the named extended operations are performed in worst-case constant time. Previous work on dynamic succinct trees (Munro et al., 2001 [17]; Raman and Rao, 2003 [19]) is mainly restricted to binary trees and achieves poly-logarithmic (Munro et al., 2001 [17]) or ''poly-log-log'' (Raman and Rao, 2003 [19]) update time under a more restricted model, where updates are performed in traversals starting at the root and ending at the root and queries can be answered when the traversal is completed. A previous result on ordinal trees achieves only sublinear amortized update time and ''poly-log-log'' query time (Gupta et al., 2007 [11]). More recently, the update time has been improved to O(logn/loglogn) while queries can be performed in O(logn/loglogn) time (Sadakane and Navarro, 2010 [20]).