  Hubbard trees are invariant trees connecting the points of the critical
orbits of postcritically finite polynomials. Douady and Hubbard \cite{Orsay}
introduced these trees and showed that they encode the essential information of
Julia sets in a combinatorial way. The itinerary of the critical orbit within
the Hubbard tree is encoded by a (pre)periodic sequence on $\{\0,\1\}$ called
\emph{kneading sequence}.
  We prove that the kneading sequence completely encodes the Hubbard tree and
its dynamics, and we show how to reconstruct the tree and in particular its
branch points (together with their periods, their relative posititions, their
number of arms and their local dynamics) in terms of the kneading sequence
alone.
  Every kneading sequence gives rise to an abstract Hubbard tree, but not every
kneading sequence occurs in real dynamics or in complex dynamics. Milnor and
Thurston \cite{MT} classified which kneading sequences occur in real dynamics;
we do the same for complex dynamics in terms of a complex \emph{admissibility
condition}. This complex admissibility condition fails if and only if the
abstract Hubbard tree has a so-called \emph{evil} periodic branch point that is
incompatible with local homeomorphic dynamics on the plane.
