
Se puede usar TikZ para crear un árbol manualmente, o usar elpaquete forestalpara facilitar el proceso. A continuación muestro cómo puedo utilizar elpaquete forestalpara crear un árbol binario y convertirlo en un árbol recombinante usando TikZ para dibujar algunos bordes manualmente. Si bien puedo agregar una etiqueta a cualquier borde que no se haya agregado manualmente (como hago a continuación con la etiquetaCanguro), no puedo entender cómo agregar una etiqueta a un borde queeraagregado manualmente. Por ejemplo, ¿cómo etiquete el borde de un nodo $S_1(T)=4$
a otro $S_2(TH)=S_2(HT)=8$
(consulte la siguiente imagen)?
Simplemente intenté copiar y pegar el mismo comando (es decir edge label={node [near end, above left, font=\footnotesize]{Kangaroo}}
, ) en el código siguiente (T) -- (TH)
, pero no funcionó.
\begin{forest}
for tree={grow'=east}
[{$S_0=8$ },
[{$S_1(T)=4$ },name=T,
[{$S_2(TT)=2$}, edge label={node [near end, above left, font=\footnotesize]{Kangaroo}} ]
[, phantom]
]
[, phantom
[{\qquad $S_2(TH)=S_2(HT)=8$},name=TH ]
]
[{$S_1(H)=16$}, name=H
[, phantom]
[{$S_2(HH)=32$} ]
]
]
\draw (T) -- (TH) (H) -- (TH);
\end{forest}
Para su información, los nodos [,fantasmas] son simplemente nodos vacíos para ayudar con el espaciado, no son realmente necesarios.
Respuesta1
Buscas l sep
dimensiones
También la sloped
versión de etiqueta con posicionamiento pos=0.5
o ajuste medio con la ayuda deyshift
\begin{forest}
for tree={grow'=east, s sep=2em, l sep=2cm}
[{$S_0=8$ },
[{$S_1(T)=4$ },name=T,
[{$S_2(TT)=2$}, edge label={node [pos=0.5, above, yshift=-4pt ,sloped,
font=\scriptsize]{Kangaroo}} ]
[, phantom]
]
[, phantom
[{\qquad $S_2(TH)=S_2(HT)=8$},name=TH ]
]
[{$S_1(H)=16$}, name=H
[, phantom]
[{$S_2(HH)=32$} ]
]
]
\draw (T) -- (TH) (H) -- (TH);
\end{forest}
EDITAR
Agregue lo siguiente:
\node at ($(T)!0.5!(TH)$)
[rotate=-22, yshift=5pt]
{\footnotesize\color{red} Kangaroo};
MWE
\begin{forest}
for tree={grow'=east, s sep=2em, l sep=2cm}
[{$S_0=8$ },
[{$S_1(T)=4$ },name=T,
[{$S_2(TT)=2$}, edge label={node [pos=0.5,above,yshift=-4pt,sloped,
font=\footnotesize]{Kangaroo}} ]
[, phantom]
]
[, phantom
[{\qquad $S_2(TH)=S_2(HT)=8$},name=TH ]
]
[{$S_1(H)=16$}, name=H
[, phantom]
[{$S_2(HH)=32$} ]
]
]
\draw (T) -- (TH) (H) -- (TH);
\node at ($(T)!0.5!(TH)$)
[rotate=-22, yshift=5pt]
{\footnotesize\color{red} Kangaroo};
\end{forest}