A Data Structure for Nearest Common Ancestors with Linking
  Consider a forest that evolves via $link$ operations that make the root of one tree the child of a node in another tree. Intermixed with $link$ operations are $nca$ operations, which return the nearest common ancestor of two given nodes when such exists. This paper shows that a sequence of $m$ such $nca$ and $link$ operations on a forest of $n$ nodes can be processed on-line in time $O(m\alpha(m,n)+n)$. This was previously known only for a restricted type of $link$ operation. The special case where a $link$ only extends a tree by adding a new leaf occurs in Edmonds' algorithm for finding a maximum weight matching on a general graph. Incorporating our algorithm into the implementation of Edmonds' algorithm in \cite{G17} achieves time $O(n(m + n\log n))$ for weighted matching, an arguably optimum asymptotic bound ($n$ and $m$ are the number of vertices and edges, respectively). 
Harold N. Gabow
cs.DS