Self-Adjusting Top Trees, with R. E. Tarjan. Proceeding of the 16th Annual ACM-SIAM Symposium on Discrete Algorithms (SODA 2005), pp. 813-882, Vancouver, Canada, 2005. Copyright SIAM.

Abstract: The dynamic trees problem is that of maintaining a forest that changes over time through edge insertions and deletions. We can associate data with vertices or edges, and manipulate this data individually or in bulk, with operations that deal with whole paths or trees. Efficient solutions to this problem have numerous applications, particularly in algorithms for network flows and dynamic graphs in general. Several data structures capable of logarithmic-time dynamic tree operations have been proposed. The first was Sleator and Tarjan's ST-tree [1983, 1985], which represents a partition of the tree into paths. Although reasonably fast in practice, adapting ST-trees to different applications is nontrivial. Topology trees [Frederickson 1997], top trees [Alstrup et al. 2003], and RC-trees [Acar et al. 2004] are based on tree contractions: they progressively combine vertices or edges to obtain a hierarchical representation of the tree. This approach is more flexible in theory, but all known implementations assume the trees have bounded degree; arbitrary trees are supported only after ternarization. We show how these two approaches can be combined (with very little overhead) to produce a data structure that is as generic as any other, very easy to adapt, and as practical as ST-trees.

[ pdf | pdf presentation ]