Maintaining Information in Fully-Dynamic Trees with Top Trees
<|reference_start|>Maintaining Information in Fully-Dynamic Trees with Top Trees: We introduce top trees as a design of a new simpler interface for data structures maintaining information in a fully-dynamic forest. We demonstrate how easy and versatile they are to use on a host of different applications. For example, we show how to maintain the diameter, center, and median of each tree in the forest. The forest can be updated by insertion and deletion of edges and by changes to vertex and edge weights. Each update is supported in O(log n) time, where n is the size of the tree(s) involved in the update. Also, we show how to support nearest common ancestor queries and level ancestor queries with respect to arbitrary roots in O(log n) time. Finally, with marked and unmarked vertices, we show how to compute distances to a nearest marked vertex. The later has applications to approximate nearest marked vertex in general graphs, and thereby to static optimization problems over shortest path metrics.   Technically speaking, top trees are easily implemented either with Frederickson's topology trees [Ambivalent Data Structures for Dynamic 2-Edge-Connectivity and k Smallest Spanning Trees, SIAM J. Comput. 26 (2) pp. 484-538, 1997] or with Sleator and Tarjan's dynamic trees [A Data Structure for Dynamic Trees. J. Comput. Syst. Sc. 26 (3) pp. 362-391, 1983]. However, we claim that the interface is simpler for many applications, and indeed our new bounds are quadratic improvements over previous bounds where they exist.<|reference_end|>
@article{alstrup2003maintaining,
    title={Maintaining Information in Fully-Dynamic Trees with Top Trees},
    author={Stephen Alstrup, Jacob Holm, Kristian de Lichtenberg, Mikkel Thorup},
    journal={arXiv preprint arXiv:cs/0310065},
    year={2003},
    archivePrefix={arXiv},
    eprint={cs/0310065},
    primaryClass={cs.DS}
}