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]).
[1]
David R. Clark,et al.
Efficient suffix trees on secondary storage
,
1996,
SODA '96.
[2]
J. Ian Munro,et al.
A Uniform Approach Towards Succinct Representation of Trees
,
2008,
SWAT.
[3]
J. Ian Munro.
Succinct Data Structures
,
2004,
Electron. Notes Theor. Comput. Sci..
[4]
Arash Farzan.
Succinct Representation of Trees and Graphs
,
2009
.
[5]
Rajeev Raman,et al.
Representing Trees of Higher Degree
,
2005,
Algorithmica.
[6]
Gonzalo Navarro,et al.
Fully-functional succinct trees
,
2010,
SODA '10.
[7]
Michael E. Saks,et al.
The cell probe complexity of dynamic data structures
,
1989,
STOC '89.
[8]
Guy Jacobson,et al.
Space-efficient static trees and graphs
,
1989,
30th Annual Symposium on Foundations of Computer Science.
[9]
Rajeev Raman,et al.
Succinct ordinal trees with level-ancestor queries
,
2004,
SODA '04.
[10]
Wing-Kai Hon,et al.
Succinct Data Structures for Searchable Partial Sums
,
2003,
ISAAC.
[11]
Alexander Golynski.
Optimal Lower Bounds for Rank and Select Indexes
,
2006,
ICALP.
[12]
Wing-Kai Hon,et al.
Compressed indexes for dynamic text collections
,
2007,
TALG.
[13]
Wing-Kai Hon,et al.
A Framework for Dynamizing Succinct Data Structures
,
2007,
ICALP.
[14]
Rajeev Raman,et al.
On the Size of Succinct Indices
,
2007,
ESA.
[15]
S. Srinivasa Rao,et al.
Succinct Ordinal Trees Based on Tree Covering
,
2007,
ICALP.
[16]
J. Ian Munro,et al.
Efficient Suffix Trees on Secondary Storage (extended Abstract)
,
1996,
SODA.
[17]
Rajeev Raman,et al.
Succinct Dynamic Dictionaries and Trees
,
2003,
ICALP.
[18]
Venkatesh Raman,et al.
Succinct representation of balanced parentheses, static trees and planar graphs
,
1997,
Proceedings 38th Annual Symposium on Foundations of Computer Science.
[19]
Venkatesh Raman,et al.
Representing dynamic binary trees succinctly
,
2001,
SODA '01.