
Можно использовать TikZ для создания дерева вручную или использоватьлесной пакетчтобы сделать процесс проще. Ниже я показываю, как я могу использоватьлесной пакетсоздать бинарное дерево и превратить его в рекомбинантное дерево, используя TikZ для рисования некоторых ребер вручную. В то время как я могу добавить метку к любому ребру, которое не было добавлено вручную (как я делаю ниже с меткойКенгуру), я не могу понять, как добавить метку к краю, которыйбылдобавлено вручную. Например, как мне пометить ребро от узла $S_1(T)=4$
до узла $S_2(TH)=S_2(HT)=8$
(см. следующую картинку)?
Я просто попробовал скопировать и вставить ту же команду (т. е. edge label={node [near end, above left, font=\footnotesize]{Kangaroo}}
) в код ниже после (T) -- (TH)
, но это не сработало.
\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}
К вашему сведению, узлы [,phantom] — это просто пустые узлы, помогающие с распределением пространства, они на самом деле не нужны.
решение1
Вы ищете l sep
измерение
Также sloped
версия этикетки с позиционированием pos=0.5
или посередине регулируется с помощьюyshift
\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}
РЕДАКТИРОВАТЬ
Добавьте следующее:
\node at ($(T)!0.5!(TH)$)
[rotate=-22, yshift=5pt]
{\footnotesize\color{red} Kangaroo};
МВЭ
\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}