
Ich versuche, einen Baum zu zeichnen und möchte seine Tiefe an der Seite mit einem Doppelpfeil angeben, auf dem die Tiefe steht. Das habe ich bisher:
\begin{tikzpicture}[<-, >=stealth', auto, semithick, level/.style={sibling distance=60mm/#1}]
%\node {} child {
\node [circle,draw] (z){$\land$}
child {node [circle,draw] (a) {$\lor$}
child {node [circle,draw] (b) {$\land$}
child {node {$\vdots$}
child {node [rectangle,draw] (d) {$x_1$}}
child {node [rectangle,draw] (e) {$x_2$}}
}
child {node {$\vdots$}}
}
child {node [circle,draw] (g) {$\land$}
child {node {$\vdots$}}
child {node {$\vdots$}}
}
}
child {node [circle,draw] (j) {$\lor$}
child {node [circle,draw] (k) {$\land$}
child {node {$\vdots$}}
child {node {$\vdots$}}
}
child {node [circle,draw] (l) {$\land$}
child {node {$\vdots$}}
child {node (c){$\vdots$}
child {node [rectangle,draw] (o) {$x_{n-1}$}}
child {node [rectangle,draw] (p) {$x_n$}
%child [grow=right] {node (q) {$=$} edge from parent[draw=none]
%child [grow=right] {node (q) {$O_{k = \lg n}(n)$} edge from parent[draw=none]
%child [grow=up] {node (r) {$\vdots$} edge from parent[draw=none]
% child [grow=up] {node (s) {$O_2(n)$} edge from parent[draw=none]
% child [grow=up] {node (t) {$O_1(n)$} edge from parent[draw=none]
% child [grow=up] {node (u) {$O_0(n)$} edge from parent[draw=none]}
% }
% }
%}
% child [grow=down] {node (v) {$O(n \cdot \lg n)$}edge from parent[draw=none]}
%}
%}
}
}
}
};
\path (o) -- (e) node (x) [midway] {$\cdots$}
child [grow=down] {
node (y) {}%{$O\left(\displaystyle\sum_{i = 0}^k 2^i \cdot \frac{n}{2^i}\right)$}
edge from parent[draw=none]
};
node (w) {};%[midway] {$O\left(\displaystyle\sum_{i = 0}^k n\right) = O(k \cdot n)$};
% \path (q) -- (v) node [midway] {=};
% \path (e) -- (x) node [midway] {+};
% \path (o) -- (x) node [midway] {+};
% \path (y) -- (w) node [midway] {$=$};
% \path (v) -- (w) node [midway] {$\Leftrightarrow$};
%\path (r) -- (c) node [midway] {$\cdots$};
\end{tikzpicture}
\end{preview}
Ich versuche den Code zu ändern vonHier. Wie kann ich dieses Problem beheben?
(Unabhängig davon: Gibt es eine Möglichkeit, auch aus dem Wurzelknoten einen Pfeil herauskommen zu lassen?)
Antwort1
Ich hoffe, diese vorgeschlagene Lösung versteht der OP gut. Hier wird ein Doppelpfeil definiert über\pgfarrowsdeclarecombine
Code
\documentclass[border=20pt]{standalone}%
\usepackage{tikz}
\usetikzlibrary{shapes,calc,positioning,arrows,}
\pgfarrowsdeclarecombine{twotriang}{twotriang}% double headed arrow
{stealth'}{stealth'}{stealth'}{stealth'}
\begin{document}
\begin{tikzpicture}[<-, >=stealth', auto, semithick,
level/.style={sibling distance=60mm/#1}
]
%\node {} child {
\node [circle,draw] (z){$\land$}
child {node [circle,draw] (a) {$\lor$}
child {node [circle,draw] (b) {$\land$}
child {node {$\vdots$}
child {node [rectangle,draw] (d) {$x_1$}}
child {node [rectangle,draw] (e) {$x_2$}}
}
child {node {$\vdots$}}
}
child {node [circle,draw] (g) {$\land$}
child {node {$\vdots$}}
child {node {$\vdots$}}
}
}
child {node [circle,draw] (j) {$\lor$}
child {node [circle,draw] (k) {$\land$}
child {node {$\vdots$}}
child {node {$\vdots$}}
}
child {node [circle,draw] (l) {$\land$}
child {node {$\vdots$}}
child {node (c){$\vdots$}
child {node [rectangle,draw] (o) {$x_{n-1}$}}
child {node [rectangle,draw] (p) {$x_n$}
}
}
}
};
\path (o) -- (e) node (x) [midway] {$\cdots$}
child [grow=down] {
edge from parent[draw=none]
};
\draw [twotriang-twotriang] ($(7cm,0)+(z.north)$) coordinate(P)--node[midway]{\rotatebox[origin=c]{270}{depth}} (P|-p.south);
\draw [->] (z) -- ++(0,1cm);
\end{tikzpicture}
\end{document}