  Classic cycle-joining techniques have found widespread application in
creating universal cycles for a diverse range of combinatorial objects, such as
shorthand permutations, weak orders, orientable sequences, and various subsets
of $k$-ary strings, including de Bruijn sequences. In the most favorable
scenarios, these algorithms operate with a space complexity of $O(n)$ and
require $O(n)$ time to generate each symbol in the sequences. In contrast,
concatenation-based methods have been developed for a limited selection of
universal cycles. In each of these instances, the universal cycles can be
generated far more efficiently, with an amortized time complexity of $O(1)$ per
symbol, while still using $O(n)$ space.
  This paper introduces $\mathit{concatenation~trees}$, which serve as the
fundamental structures needed to bridge the gap between cycle-joining
constructions based on the pure cycle register and corresponding
concatenation-based approaches. They immediately demystify the relationship
between the classic Lyndon word concatenation construction of de Bruijn
sequences and a corresponding cycle-joining based construction. To underscore
their significance, concatenation trees are applied to construct universal
cycles for shorthand permutations and weak orders in $O(1)$-amortized time per
symbol. Moreover, we provide insights as to how similar results can be obtained
for other universal cycles including cut-down de Bruijn sequences and
orientable sequences.
