Number of balanced binary trees (The Art of Computer Programming)
The way I tend to interpret these parameters is to think of them as stand-ins for some type of basic structure in your enumeration problem. This might sound a bit too abstract, so let's look at a (simpler) concrete example.

Let's consider the task of enumerating linked lists. The question I'm interested in is, given a list of unit types (those whose only element is the unit $\circ$), how many lists over unit are there such that their length is $n$? Now, this question was chosen for a very simple purpose: it's easy to see what the answer is. If each element of your list can only be a single element $\circ$, then obviously there's exactly one list of size $n$.

Now, one way to solve this is to look at the inductive definition of a list.
$$
\textrm{List}_{\circ} = \circ :: \textrm{List}_{\circ} ~\textrm{or}~ []
$$

This says that a list over $\circ$ is either a $\circ$ prepended to another list, or it is an empty list. Flattening out the fancy operators into tuple form, and turning the word $\rm or$ into a $+$, we have

$$
\textrm{List}_{\circ} = (\circ * \textrm{List}_{\circ}) + []
$$

Since an empty list [] can be thought of as a tuple with zero $\circ$s inside, let's rewrite it as $\circ^0 = 1$. This then gives an equation

$$
L = \circ * L + 1
$$

Suppose that we're working over the complex field, then this is equivalent to (assuming that $\circ \ne 1$)
$$
L = \frac{1}{1 - \circ} = \circ^0 + \circ^1 + \circ^2 + \circ^3 + \dots
$$

Now, notice that the formal power series of $L$ with respect to $\circ$ exactly specifies all of the possible lists over the unit $\circ$. That's kind of cool, but is it just a coincidence?

To find out, we turn our attention to a related problem, that of counting lists over the booleans $(\bot, \top)$. Once again, we start with the inductive definition

$$
\textrm{List}_{2} = (\bot ~\textrm{or}~ \top) :: \textrm{List}_{2} ~\textrm{or}~ []
$$

Doing the same transformation as before, we find that

$$
L_2(\bot, \top) = \frac{1}{1 - (\bot + \top)} = 1 + \bot + \top + \bot^2 + \bot\top + \top\bot + \top^2 + \bot^3 + \bot^2\top + \dots
$$

Interesting, it seems like for certain enumeration problems, the inductive definition we use to specify/construct a type can be translated into this functional over the complex numbers. What's more, this functional's formal power series seems to generate a series of constructions that are isomorphic to the objects from your inductive specification. This is more or less the idea behind these generating functions: their series representation "generates" the combinatorial structures that you are studying.

Now, let's come back to the counting problem. So what if we know that $\frac{1}{1 - \top - \bot}$ represents our combinatorial class? How does this help us with the enumeration problem? Well, the counting problem asks for the number of lists that contains a certain number. This tells us that even if $\top$ and $\bot$ are distinct, they still each contribute the same number of elements (namely, 1) to the list. We can specify this "blindness" with the equality $z = \bot = \top$, so that

$$
L_2(z) = L_2(z, z) = \frac{1}{1 - 2z} = 1 + z + z + z^2 + z^2 + z^2 + z^2 + z^3 + z^3 + \dots
$$

simplifying, this series yields

$$
L_2(z) = 1 + 2z + 4z^2 + 8z^3 + \dots + 2^k z^k + \dots
$$

Since each of the lists under $z^3$ are lists of length 3, this series then tells us that there are $2^3$ distinct boolean lists of length 3.

Herein lies the power of these generating functions. By "erasing" properties that you don't care about (like the distinctness of true and false in a counting problem), you end up with this formal series whose coefficient gives the total count of a subclass of interest. Therefore, the question du jour of these "analytic" enumeration problems is not how one interprets giving $z$ a specific value, but rather how one can show that the function is analytic/differentiable around the origin and what its coefficients are.

This glosses over a lot of the details, but the intuition should hopefully remain. For your particular problem, we can follow the same recipe to eventually derive Knuth's tower of balanced tree construction.

Now, a height-balanced tree is a binary tree such that the height of each child of a tree is always within one unit of any other child of a tree. This gives a simple case-analysis to consider.

A balanced tree of height $h$ is a root node together with children such that they are:


Balanced, so that the height of both children are the same, aka $h - 1$.
Unbalanced but left-skewed, so that the height of the left children is larger, aka $h - 1$ and $h - 2$.
Unbalanced but right-skewed, so that the height of the right children is larger, aka $h - 2$ and $h - 1$.


This then yields an inductive specification

$$
BBT_h = (BBT_{h-1}, \circ, BBT_{h-1}) ~\textrm{or}~ (BBT_{h-2}, \circ, BBT_{h-1}) ~\textrm{or}~ (BBT_{h-1}, \circ, BBT_{h-2})
$$

Where the tuple $(L, \circ, R)$ denotes the balanced tree rooted at $\circ$ with the left branching to $L$ and the right branching to $R$. Transferring to the complex field, this gives
$$
B_h = \circ B_{h-1}^2 + \circ B_{h_2} B_{h-1} + \circ B_{h-1} B_{h-2}
$$
taking advantage of the newly found freedom of commutativity, and reassociating, we have
$$
B_h(\circ) = \circ B_{h-1}(B_{h-1} + 2 B_{h-2})
$$
Since this is a two-step recurrence, we need to specify their initial conditions. $B_0$ is the class of balanced trees with zero nodes, so we have $B_0(\circ) = \circ^0 = 1$. $B_1$ is the class of balanced trees with one node, so we have $B_1(\circ) = \circ^1$. Finally, substituting $z = \circ$ gives Knuth's generating functions.

Of course, we've skipped over one bit: we haven't shown that there's some neighborhood around the origin such that $B_k(z)$'s formal series actually converges. Fortunately for us, these forms of inductive constructions are all generally admissible, so we need not worry about them here.

Finally, the last step is to characterize the coefficient of $z^k$. To be fair, the full problem is to find the coefficients of $\sum_h B_h(z)$, but it suffices to just find the coefficient for some $B_h(z)$, since we can then sum over the rest independently. There's two general strategies we can pursue:


Find an explicit characterization of $B_h(z)$.
Use the implicit recurrence directly and see if we can find the coefficients directly.


Here, I imagine that Knuth's approach is probably the second approach. In particular, given two functions $A(z) = a_0 + a_1 z + a_2 z^2 + \dots$ and $B(z) = b_0 + \dots$, we have
$$
A(z) * B(z) = \sum_n \sum_{k \le n} a_k b_{n-k} z^n
$$
and in particular
$$
zA(z) = a_0z + a_1z^2 + \dots
$$

Letting $[z^n]f(z) = f_n$ be the coefficient of $z^n$ in $f(z)$, then we have
\begin{align*}
[z^{n+1}]B_h(z) &amp;= [z^n](B_{h-1}(z)^2 + 2B_{h_1}(z)B_{h-2}(z)) \\
&amp;= \sum_{k \le n} ([z^k]B_{h-1}(z) + [z^k]B_{h-2}(z)) \times [z^{n-k}]B_{h-1}(z)
\end{align*}

This then gives a rather mundane dynamic programming algorithm to compute these coefficients. You can also probably appeal to some analytic techniques to solve for asymptotic properties, but that's for another time.