Especificación de la profundidad de un árbol binario en el lateral

Especificación de la profundidad de un árbol binario en el lateral

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

ingrese la descripción de la imagen aquí

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}

información relacionada