An encoding which provides a bijection between the labeled trees on
nodes and strings of
integers chosen from an alphabet of the numbers 1 to
. A labeled
tree can be converted to a Prüfer code using LabeledTreeToCode[g]
in the Wolfram Language package Combinatorica`
, and a code can be converted to a labeled tree using
CodeToLabeledTree[code].
Prüfer's bijection is based on the fact that every tree has at least two nodes of degree 1 (i.e., tree leaves. Therefore, the node
which is incident to the lowest labeled
leaf is uniquely determined, and
is then taken as the first symbol in the code. This lowest
labeled leaf is then deleted and the procedure is repeated until a single edge is
left, giving a total of
integers between 1 and
(Skiena 1990). This is demonstrated in the labeled tree
shown above. The sequence of leaf deletions is 4, 6, 2, 1, 7, and 3, corresponding
to incident nodes 1, 2, 1, 3, 3, and 5, respectively.