Autor Tema: Profundidad mínima árbol binario con n nodos

0 Usuarios y 1 Visitante están viendo este tema.

22 Septiembre, 2021, 09:35 pm
Leído 1029 veces

Xtimmler

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 106
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
Hola foro perdón si la pregunta es muy simple pero a mi no se me ocurre como resolverlo, si tenemos un árbol binario con \( n \) nodos sabemos que el máximo de profundidad que puede llegar a tener es \( n \) pero para el mínimo que puede tener ¿hay una fórmula simple o hay que recurrir a algún algoritmo? Por ejemplo si yo digo que el árbol tiene 10 nodos, sabemos que un árbol completo de profundidad 2 tiene 7 nodos y uno de profundidad 3 tiene 15 como 10 esta entre 7 y 15 sabemos que la profundidad minima que puede tener un árbol de 10 elementos es 3.
Pero ¿como hago para valores mucho más altos como 100000?

22 Septiembre, 2021, 09:49 pm
Respuesta #1

Xtimmler

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 106
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
Bueno foro al final si era simple ya lo resolvi pero deja la solucion acá por si alguien le interesa.

 Profundidad mínima árbol binario con \( n \) nodos = \( \lceil log_2(\displaystyle\frac{n+1}{2})\rceil \)

22 Septiembre, 2021, 09:54 pm
Respuesta #2

Luis Fuentes

  • el_manco
  • Administrador
  • Mensajes: 58,907
  • País: es
  • Karma: +0/-0
Hola

Hola foro perdón si la pregunta es muy simple pero a mi no se me ocurre como resolverlo, si tenemos un árbol binario con \( n \) nodos sabemos que el máximo de profundidad que puede llegar a tener es \( n \) pero para el mínimo que puede tener ¿hay una fórmula simple o hay que recurrir a algún algoritmo? Por ejemplo si yo digo que el árbol tiene 10 nodos, sabemos que un árbol completo de profundidad 2 tiene 7 nodos y uno de profundidad 3 tiene 15 como 10 esta entre 7 y 15 sabemos que la profundidad minima que puede tener un árbol de 10 elementos es 3.
Pero ¿como hago para valores mucho más altos como 100000?

Si \( x \) es el número de nodos y n es la profundidad mínima se cumple que:

\( 2^n\leq x<2^{n+1} \)

\( n\leq log_2(x)< n+1 \)

Por tanto:

\( n=[ log_2(x)] \) (función parte entera)

Saludos.

P.D. Vi que me adelantaste tu mismo...