The LCA Problem Revisited (2000)
Abstract:
We present a very simple algorithm for the Least Common Ancestor problem. We thus dispel the frequently held notion that an optimal LCA computation is unwieldy and unimplementable. Interestingly, this algorithm is a sequentialization of a previously known PRAM algorithm of Berkman, Breslauer, Galil, Schieber, and Vishkin [1]. Keywords: Data Structures, Least Common Ancestor (LCA), Range Minimum Query (RMQ), Cartesian Tree. 1 Introduction One of the most fundamental algorithmic problems on trees is how to find the Least Common Ancestor (LCA) of a pair of nodes. The LCA of nodes u and v in a tree is the shared ancestor of u and v that is located farthest from the root. More formally, the LCA Problem is stated as follows: Given a rooted tree T , how can T be preprocessed to answer LCA queries quickly for any pair of nodes. Thus, one must optimize both the preprocessing time and the query time. The LCA problem has been studied intensively both because it is inherently beautiful alg...
Citations
| 228 | Fast Algorithms for Finding Nearest Common Ancestors – Harel, Tarjan - 1984 |
| 145 | U.: On finding lowest common ancestors: Simplification and parallelization – Schieber, Vishkin - 1988 |
| 38 | Highly Parallelizable Problems – Berkman, Breslauer, et al. - 1989 |

