
Estoy intentando dibujar un árbol y quiero especificar su profundidad a lo largo del costado con una flecha de dos puntas con la profundidad escrita en la flecha. Esto es lo que tengo hasta ahora:
\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}
Estoy intentando modificar el código deaquí. ¿Como puedo solucionar este problema?
(No relacionado: ¿Hay alguna manera de que también pueda salir una flecha del nodo raíz?)
Respuesta1
Espero que esta solución propuesta comprenda bien el OP. Aquí una flecha de doble punta se define mediante\pgfarrowsdeclarecombine
Código
\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}