Linear-Time Pointer-Machine Algorithms for Path-Evaluation

Problems on Trees and Graphs

 

Adam L. Buchsbaum, Loukas Georgiadis, Haim Kaplan, Anne Rogers,

Robert E. Tarjan and Jeffery R. Westbrook

 

 

Abstract

 

We present algorithms running in linear time on a pointer machine for a collection of problems, each of which either directly or indirectly requires the evaluation of a function defined on paths in a tree.  These problems previously had linear-time algorithms, but only for a random-access machine (RAM); the best pointer-machine algorithms were non-linear by an inverse-Ackermann-function factor. Our algorithms are also simpler, in some cases substantially, than the previous linear-time RAM algorithms.  Our improvements come primarily from three new ideas: a refined analysis of path compression that gives a linear bound if the compressions favour certain nodes, pointer-based radix sort as a replacement for table-based methods, and a more careful partitioning of a tree into easily-managed parts.  Our algorithms compute nearest common ancestors off-line, verify and construct minimum spanning trees, do interval analysis on a flowgraph, find the dominators of a flowgraph, and build the component tree of a weighted tree.

 

 


Preliminary version at arXiv.org