Aunque Java no proporciona una clase de árbol binario en las bibliotecas predeterminadas , una clase básica árbol binario es suficientemente simple para ser presentado. Un " recorrido " de una estructura de datos es un algoritmo que visita cada nodo de una vez . Esto se aplica a menudo como una especie de repetidor (al igual que una lista iterador ) o método que llamar a un método de devolución de llamada para cada nodo. En Java , para hacer un " postorder " recorrido que visitará el nodo raíz última , no hay devoluciones de llamada o iteradores son necesarios. La función de recorrido simplemente imprimir cada nodo se visita a la consola. Instrucciones
1
Escribe una búsqueda clase básica árbol binario . Sólo hay dos métodos que deben ser apoyados en esta etapa : un constructor básico que inicializa el valor del nodo , y un método de inserción. El método de inserción será recorrer un árbol y crear un nuevo nodo en el lugar correcto . " " clase pública BinaryTree { BinaryTree izquierda ; BinaryTree derecho , valor int ; pública BinaryTree (int v ) {value = v ;} //Insertar un valor en el árbol de inserción public void (int v ) { if ( v if ( izquierda = = null) izquierda = new BinaryTree ( v ) , de otra left.insert ( v ) ; } else if ( v > valor) {if (derecha == null) derecha = new BinaryTree ( v ) , de otra right.insert ( v ) ; . } } " "
2
Crear una instancia del árbol binario que será el nodo raíz Cada nodo, incluso el nodo raíz , debe tener un valor
< br . > 3
Elija un valor para el nodo raíz que está en algún lugar en medio de los objetos que va a almacenar . por ejemplo, si usted está almacenando una distribución uniforme de los números del 1 al 100 , 50 es una buena opción para el nodo raíz árboles binarios deben ser lo más equilibrada posible , ya que los árboles crecen muy desequilibradas alto y no son muy eficaces ", " BinaryTree b = new BinaryTree ( 50 ), " . ".
4
Insert algunos nodos en el árbol . Desde este árbol no es auto -equilibrio , mantener el equilibrio , los nodos deben insertarse en un orden específico . el orden en el código de ejemplo se hace a mano para hacer posible el árbol más corto y más eficiente ". " b . inserto ( 20 ) ; b.insert ( 40 ) ; b.insert ( 10 ) ; b.insert ( 5 ) ; b.insert ( 45 ) ; b.insert ( 70 ) ; b.insert ( 60 ) ; b.insert ( 80 ) ; b.insert ( 55 ) ; b.insert ( 85 ), " "
5
recorrer el árbol , atravesando el árbol de la izquierda primero , seguido por el árbol de la derecha , y luego , finalmente, el nodo raíz . Si se utiliza recursión para hacer el recorrido postorden , el método es sólo tres líneas de largo . En este caso , la pila sólo va a crecer a la altura del árbol . Desde el árbol de equilibrado y es pequeña , la recursión no se desbordará la pila.
6
Añadir nuevo método a la clase BinaryTree llamada postorder . Aquí , sólo se imprime el valor de cada nodo que visita. " " postorder public void () { if ( izquierdo! = null ) left.postorder (); if ( derecha = null) right.postorder (); ! System.out.println (valor) ;} " "
7
Imprimir los nodos en postorden llamando al método b.postorder después de sus inserciones " " b.postorder (); " .