Aktualisieren:
Ich habe Folgendes getan:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{trees}
\begin{document}
\begin{tikzpicture}[level distance=1.5cm,
level 1/.style={sibling distance=3cm},
level 2/.style={sibling distance=1.5cm}]
\node {16}
child {node {14}
child {node [red] {4}
child {node {2}}
child {node {8}}
}
child {node [circle, draw, red] {7}
child {node {1}}
}
}
child {node {10}
child {node {9}}
child {node {3}}
};
\end{tikzpicture}
\end{document}
was zu folgendem Ergebnis führt:
Ich bin ziemlich neu bei Tikz und habe gesehen, dass es viele verschiedene Pakete zum Zeichnen von Bäumen gibt. Ich weiß nicht, ob es am besten ist, "Forest" zu verwenden.
Ursprüngliche Frage:
Kann mir jemand helfen, den Inhalt des angehängten Bildes in Tikz zu reproduzieren? Vielen Dank.
Antwort1
Im Allgemeinen sind die grundlegenden Baummethoden von TikZ am wenigsten flexibel und haben die am wenigsten praktische Syntax. Zum Zeichnen von Bäumen dieser Art empfehle ich das forest
Paket. Damit können Sie diesen Baum sehr einfach zeichnen:
\documentclass{article}
\usepackage[linguistics]{forest}
\newcommand{\lbl}[2][red]{{\color{#1}^#2}}
\begin{document}
\begin{forest}for tree=math content
[\lbl{1}16
[\lbl{2}14,name=14
[4,red,name=4
[2]
[8]
]
[7,draw=red,circle
[1]
]
]
[\lbl{3}10,name=10
[\lbl{6}9 ]
[3,name=3]
]
]
\node [left of=4] (i) {i};
\draw[->] (i) -- (4);
\node[draw,fit=(i) (4)] {};
\node[draw,dashed,ellipse,rotate=45,fit=(10.north) (3)]{};
\draw[<->,] (4.north west) to[bend left] (14.south west);
\node [above of=i] {exchange};
\end{forest}
\end{document}