Tree rebalancing in optimal time and space

Q. F Stout, B. L Warren
1986 Communications of the ACM  
A simple algorithm is given which takes an arbitrary binary search tree and rebalances it to form another of optimal shape, using time linear in the number of nodes and only a constant amount of space (beyond that used to store the initial tree). This algorithm is therefore optimal in its use of both time and space. Previous algorithms were optimal in at most one of these two measures, or were not applicable to all binary search trees. When the nodes of the tree are stored in an array, a simple
more » ... an array, a simple addition to this algorithm results in the nodes being stored in sorted order in the initial portion of the array, again using linear time and constant space.
doi:10.1145/6592.6599 fatcat:k57njnzp5jgtrp2wv6iwwc7iem