estructuras de datos eficientes optimizar el rendimiento de un programa por lo que es más fácil para el programa para encontrar los datos que necesita. Árboles binarios de búsqueda son una de las estructuras de datos más eficientes para la búsqueda a través de un conjunto ordenado de datos . Si la estructura de datos es un árbol binario de búsqueda organizado o un árbol binario estándar, puede encontrar la altura del árbol en Java a través de una función recursiva simple. Árbol Estructura
Un árbol binario consiste en un conjunto de nodos interconectados . Cada nodo tiene entre cero y dos nodos secundarios . Cada nodo con la excepción del nodo raíz tiene exactamente un nodo padre . El nodo raíz tiene nodos principales . Java no tiene una clase de árbol incorporada en binario , pero usted puede crear sus propios desde cero o descargar uno de Internet.
Tree Altura
La altura de un árbol binario es el número máximo de nodos , no incluyendo el nodo raíz , a lo largo de un solo recorrido vertical a través del árbol binario . Por ejemplo , un árbol binario con sólo un nodo tendría una altura de cero . Un árbol binario con un nodo raíz con dos nodos secundarios tendría una altura de uno . Si uno de los nodos hijos tenía su propio nodo hijo , el árbol tendría una altura de tres.
Teoría
La forma más sencilla de determinar la altura de un árbol binario en Java es con un método recursivo . Este método acepta un único nodo como un argumento y devuelve la altura del árbol binario por debajo del nodo argumento . El método se llama de nuevo para cada uno de los nodos secundarios del nodo argumento y almacena el resultado como una variable entera . Se comparan las dos variables , que representan la altura de cada uno de sus hijos , añade una a la mayor de las dos variables y devuelve el resultado . Si el nodo argumento pasado al método es null, el método devuelve negativo.
Algoritmo
El método Java siguiente calcular la altura de un árbol binario . Se acepta el nodo raíz de un árbol binario como un argumento . Como alternativa, puede pasar a otro nodo del árbol binario en el método para encontrar la altura del árbol debajo de ese nodo. El código siguiente se supone que cada nodo del árbol binario es del tipo " BinaryTreeNode " y cada nodo contiene métodos que devuelven los hijos izquierdo y derecho de ese nodo llamado " getLeftChild " y " getRightChild . "
< p> private int findHeight ( BinaryTreeNode currentNode ) { if ( currentNode.equals ( null) ) {return 1; } int leftHeight = findHeight ( currentNode.getLeftChild ()); int rightHeight = findHeight ( currentNode.getRightChild ()); int greatestHeight = Math.max ( leftHeight , rightHeight ) ; greatestHeight return;}