  We investigate the nearest common ancestor (NCA) function in rooted trees. As
the main conceptual contribution, the paper introduces universal trees for the
NCA function: For a given family of rooted trees, an NCA-universal tree $S$ is
a rooted tree such that any tree $T$ of the family can be embedded into $S$
such that the embedding of the NCA in $T$ of two nodes of $T$ is equal to the
NCA in $S$ of the embeddings of the two nodes.
  As the main technical result we give explicit constructions of NCA-universal
trees of size $n^{2.318}$ for the family of rooted $n$-vertex trees and of size
$n^{1.894}$ for the family of rooted binary $n$-vertex trees. A direct
consequence is the explicit construction of NCA-labeling schemes with labels of
size $2.318\log_2 n$ and $1.894\log_2 n$ for the two families of rooted trees.
This improves on the best known such labeling schemes established by Alstrup,
Halvorsen and Larsen [SODA 2014].
