\documentstyle[trees,a4]{article} \title{{\tt trees.sty}: A Macro for Drawing Binary \\ or Ternary Trees} \author{Peter Vanroose \\ Peter.Vanroose@esat.kuleuven.ac.be} \date{18 april 1990} \begin{document} \maketitle The following macros let you draw a (binary or ternary) tree of any size. For each "internal node", you only have to specify which are the descending nodes, with a \verb|\branch| command (\verb|\tbranch| for ternary node.). To this end, nodes are given a label (only used internally!). These macros will give you some ideas on designing similar things for, e.g., digital circuits. Trees are constructed with labels on the branches (default 0 and 1), and with text (e.g., its name or value) on the nodes. The first parameter to \verb|\branch| (0, 1, 2 or 3) determines the steepness of the branches. Example: \small \begin{verbatim} \begin{picture}(100,100)(-50,10) \unitlength=2mm \branchlabels ABC % 012 is the default \root(2,10) 0. % root at absolute coordinate (2,10) % its (internally used) label is 0 % the space before the 0 is obligatory \branch2{16} 0:1,2. % node 0 (i.e., the root) has children 1 and 2 % the text "1.00" is written above it % space is optional, :,. are obligatory \leaf{4}{$u_1$} 1. % node 1 is a leaf % "0.45" written above, "$u_1$" to the right \branch2{12} 2:3,7. % branch to node 3 goes up, and has label A \tbranch2{9} 3:4,5,6. \leaf{4}{$u_3$}4. % the symbols 0--7 can be replaced by anything \leaf{3}{$u_4$}5. \leaf{2}{$u_5$}6. \leaf{3}{$u_2$} 7. \end{picture} \end{verbatim} \normalsize will typeset something like: \begin{flushleft} \begin{picture}(100,100)(-50,10) \unitlength=2mm \branchlabels ABC \root(2,10) 0. \branch2{16} 0:1,2. \leaf{4}{$u_1$} 1. \branch2{12} 2:3,7. \tbranch2{9} 3:4,5,6. \leaf{4}{$u_3$}4. \leaf{3}{$u_4$}5. \leaf{2}{$u_5$}6. \leaf{3}{$u_2$} 7. \end{picture} \end{flushleft} \end{document}