Self-adjusting binary search trees
Journal of the ACM (JACM)
An O (n log log n)-time algorithm for triangulating a simple polygon
SIAM Journal on Computing
A data structure for dynamic trees
Journal of Computer and System Sciences
Use of dynamic trees in a network simplex algorithm for the maximum flow problem
Mathematical Programming: Series A and B
A data structure for dynamically maintaining rooted trees
Journal of Algorithms
Efficiency of a Good But Not Linear Set Union Algorithm
Journal of the ACM (JACM)
Journal of the ACM (JACM)
Meldable heaps and boolean union-find
STOC '02 Proceedings of the thiry-fourth annual ACM symposium on Theory of computing
On the Dynamic Finger Conjecture for Splay Trees. Part I: Splay Sorting log n-Block Sequences
SIAM Journal on Computing
On the Dynamic Finger Conjecture for Splay Trees. Part II: The Proof
SIAM Journal on Computing
Dynamizing static algorithms, with applications to dynamic trees and history independence
SODA '04 Proceedings of the fifteenth annual ACM-SIAM symposium on Discrete algorithms
Extreme elevation on a 2-manifold
SCG '04 Proceedings of the twentieth annual symposium on Computational geometry
SODA '05 Proceedings of the sixteenth annual ACM-SIAM symposium on Discrete algorithms
Maintaining information in fully dynamic trees with top trees
ACM Transactions on Algorithms (TALG)
Design of data structures for mergeable trees
SODA '06 Proceedings of the seventeenth annual ACM-SIAM symposium on Discrete algorithm
Logarithmic Lower Bounds in the Cell-Probe Model
SIAM Journal on Computing
Extreme Elevation on a 2-Manifold
Discrete & Computational Geometry
Path Minima in Incremental Unrooted Trees
ESA '08 Proceedings of the 16th annual European symposium on Algorithms
Hi-index | 0.00 |
Motivated by an application in computational geometry, we consider a novel variant of the problem of efficiently maintaining a forest of dynamic rooted trees. This variant includes an operation that merges two tree paths. In contrast to the standard problem, in which a single operation can only add or delete one arc, one merge can add and delete up to a linear number of arcs. In spite of this, we develop three different methods that need only polylogarithmic time per operation. The first method extends a solution of Farach and Thorup [1998] for the special case of paths. Each merge takes O(log2n) amortized time on an n-node forest and each standard dynamic tree operation takes O(log n) time; the latter bound is amortized, worst case, or randomized depending on the underlying data structure. For the special case that occurs in the motivating application, in which arbitrary arc deletions (cuts) do not occur, we give a method that takes O(log n) time per operation, including merging. This is best possible in a model of computation with an Ω(n log n) lower bound for sorting n numbers, since such sorting can be done in O(n) tree operations. For the even-more-special case in which there are no cuts and no parent queries, we give a method that uses standard dynamic trees as a black box: each mergeable tree operation becomes a constant number of standard dynamic tree operations. This third method can also be used in the motivating application, but only by changing the algorithm in the application. Each of our three methods needs different analytical tools and reveals different properties of dynamic trees.