¿Cuál es la altura, el tamaño y la profundidad de un árbol binario?

Hay tres propiedades importantes de los árboles: altura, profundidad y nivel, junto con el borde y el camino y el árbol (estructura de datos) en wiki también los explica brevemente:

Borde

Borde: conexión entre un nodo a otro.

Un ejemplo de borde se muestra arriba entre A y B. Básicamente, un borde es una línea entre dos nodos, o un nodo y una hoja .

Camino

Ruta: una secuencia de nodos y bordes que conectan un nodo con un descendiente.

Una ruta comienza desde un nodo y termina en otro nodo o una hoja. Por favor, no mire los siguientes puntos:

  1. Cuando hablamos de una ruta, incluye todos los nodos y todos los bordes a lo largo de la ruta, no solo los bordes .
  2. La dirección de una ruta es estrictamente de arriba a abajo y no se puede cambiar en el medio. En el diagrama, no podemos hablar realmente de una ruta de B a F, aunque B está por encima de F. Además, no habrá una ruta que comience desde una hoja o desde un nodo secundario hacia un nodo primario. ( [1] )

Altura

Altura del nodo: la altura de un nodo es el número de bordes en el camino descendente más largo entre ese nodo y una hoja.

Al principio, podemos ver que la definición wiki anterior tiene un término redundante, hacia abajo , dentro. Como ya sabemos en la sección anterior, la ruta solo puede ser hacia abajo.

Al mirar a la altura:

  1. Cada nodo tiene altura. Entonces B puede tener altura, también A , C y D.
  2. La hoja no puede tener altura ya que no habrá camino a partir de una hoja.
  3. Es el camino más largo desde el nodo a una hoja . Entonces, la altura de A es el número de bordes de la ruta hacia E , NO hacia G. Y su altura es de 3.

La altura de la raíz es 1.

Altura del árbol: la altura de un árbol es el número de bordes en el camino descendente más largo entre la raíz y una hoja.

Entonces la altura de un árbol es la altura de su raíz .

Con frecuencia, se nos puede hacer la pregunta: ¿cuál es el número máximo de nodos que puede tener un árbol si la altura del árbol es h? . Por supuesto, la respuesta es 2h − 1 [matemáticas] 2h − 1 [/ matemáticas]. Cuando h = 1 [matemática] h = 1 [/ matemática], el número de nodo dentro es 1, que es solo la raíz; también cuando un árbol solo tiene raíz, la altura de la raíz es 1. Por lo tanto, las dos inducciones coinciden.

¿Qué tal dar una altura de 0? Entonces significa que no tenemos ningún nodo en el árbol; pero aun así podemos tener hojas adentro. Por eso, en la mayoría de los idiomas, el tipo de árbol puede ser solo una hoja.

  escriba 'a bst =  
   El |  Hoja 
   El |  Nodo de 'a bst *' a * 'a bst

Además, cuando usamos 2h − 1 [matemática] 2h − 1 [/ matemática] para calcular el número máximo de nodos, las hojas no se tienen en cuenta. La hoja no es nodo . No lleva clave ni datos, y actúa solo como una señal de STOP. Necesitamos recordar esto cuando tratamos con las propiedades de los árboles.

Profundidad

Profundidad: la profundidad de un nodo es el número de aristas desde el nodo hasta el nodo raíz del árbol.

Ya no nos importa la ruta cuando aparece la profundidad. Solo contamos cuántos bordes entre el nodo de orientación y la raíz, ignorando las direcciones. Por ejemplo, la profundidad de D es 2.

Recuerde que cuando hablamos de altura, en realidad implicamos una línea de base ubicada en la parte inferior. Para depath, la línea base está en la parte superior, que es el nivel raíz. Por eso lo llamamos profundidad.

Tenga en cuenta que la profundidad de la raíz es 0 .

Nivel

Nivel: el nivel de un nodo se define por 1 + el número de conexiones entre el nodo y la raíz.

Simplemente poniendo , el nivel es la profundidad más 1.

Lo importante a recordar es que cuando se habla de nivel, comienza desde 1 y el nivel de la raíz es 1 . Debemos tener cuidado con esto al resolver problemas relacionados con el nivel.

El tamaño del árbol binario es el número de nodos que contiene. Un árbol binario vacío tiene tamaño 0.

Aquí el tamaño del árbol es 15.

Conocer la profundidad , altura y nivel.

La respuesta de Abhishek Singh Thakur a ¿Cuál es la diferencia entre la altura y el nivel de un árbol binario completo?

[1]

Notas al pie

[1] Programación Geek

Altura de un nodo: número de aristas en la ruta más larga desde ese nodo hasta la hoja más alejada.

Profundidad: número de aristas en la ruta desde ese nodo hasta la raíz.

La altura del árbol es, Altura de la RAÍZ.

La profundidad del árbol es, profundidad máxima en el árbol.

More Interesting

¿Cuáles son los mejores algoritmos de Real Space Renormalization Group?

¿Por qué el aprendizaje profundo requiere la construcción de modelos de datos generativos?

¿Puedes explicar la prueba del postulado de Bertrand a un completo idiota?

¿Cuál es el algoritmo más eficiente en el tiempo para encontrar el número de divisores de un número?

¿Cómo podemos encontrar la aparición de una cadena dada (la secuencia no importa) en una secuencia dada en Java?

Cuando trato de entender una técnica como la memorización o lo que sea, me enfrento a muchos dolores y no lo entiendo de inmediato. Necesito intentarlo varias veces. ¿Es normal o debo obtener algoritmos y técnicas con al menos uno o 2 aciertos?

¿Existe algún algoritmo o método para identificar patrones en una secuencia de filas / eventos?

¿Cuál es la mejor manera de aprender el algoritmo KMP para poder recordarlo fácilmente?

¿Cuál es el tiempo de ejecución esperado de un algoritmo que genera aleatoriamente cadenas únicas de longitud D?

¿Por qué la recursión me causa tantos problemas?

¿Resolver todos los problemas en Project Euler facilita la resolución de problemas en Topcoder?

¿Cuál es el mejor algoritmo para usar para la detección de valores atípicos en el flujo de datos?

Dado un laberinto cuadrado, cada entrada en el laberinto es una celda abierta 'O' o una pared 'X'. Una rata puede viajar a sus ubicaciones adyacentes (izquierda, derecha, arriba y abajo), pero para llegar a una celda, debe estar abierta. Dadas las ubicaciones de las ratas, ¿puedes averiguar si todas las ratas pueden alcanzar a las demás?

¿Existen tipos de programas de software que involucren matemáticas, pero que puedan resolver problemas cotidianos (es decir, no un motor de juego de física completo o un nuevo algoritmo criptográfico)?

¿Se ha encontrado alguna solución para los problemas de NP completo?