¿Cuál es el principio y el algoritmo para encontrar la altura de un árbol binario? Cuanto más detallado, mejor, lenguaje C, ¡gracias!
Primero analice la relación entre la profundidad (altura) de un árbol binario y la profundidad de sus subárboles izquierdo y derecho. Según la definición de profundidad del árbol binario, podemos saber que la profundidad de un árbol binario debe ser el valor máximo de la profundidad de sus subárboles izquierdo y derecho más 1. Por lo tanto, necesitamos encontrar la profundidad de los subárboles izquierdo y derecho respectivamente, y la operación de "visitar el nodo" en el algoritmo es encontrar el valor máximo de la profundidad de los subárboles izquierdo y derecho, y luego sumar
1
int
Profundidad
(BiTree
T
){
Devuelve la profundidad del árbol binario
if
(
!T
)
valor de profundidad
0;<
else
{
profundidadIzquierda
=
Profundidad(
T-gt; lchild
);
profundidadDerecha=
Profundidad(
T-gt; rchild
);
valor de profundidad
=
1
(profundidadIzquierda
gt;
profundidadDerecha
profundidadIzquierda
:
profundidadDerecha);
}
retorno
profundidadval;
}