árboles binarios son estructuras complejas de datos utilizados en los programas de ordenador para almacenar datos en la memoria utilizando un algoritmo de almacenamiento común . Mediante el uso de este tipo de algoritmo , los datos pueden ser almacenados en un patrón estable , haciendo que la recuperación y la búsqueda a través de datos más fácil . Los programadores de Java que están diseñando los árboles binarios son más que probable que también el diseño de algoritmos para atravesar las estructuras de datos. Hay tres maneras de atravesar los árboles binarios : en fin , pre - orden, y después de la orden. Cosas que necesitará
Java Development Kit (JDK ) Editor de texto
Mostrar más instrucciones
1
recorrer el árbol binario utilizando en el recorrido en orden . Suponiendo que la clase "BT " representa un árbol binario , el código siguiente muestra cómo imprimir el árbol en orden. Cada nodo tiene un puntero izquierda y derecha que señala a los nodos izquierdo y derecho del nodo actual , junto con un elemento de datos que representa su valor . El en el recorrido en orden atravesará el nodo izquierdo primero hasta golpear nulo, y la impresión nodo de los padres antes de atravesar la derecha y empezar de nuevo . El significa que cualquier nodo sólo se imprimirá si todos sus nodos secundarios del lado izquierdo se imprime primero :
public class BT {
pública finde void ( Nodo x ) {
< p > if ( x == null) {return //detiene la recursividad cuando no hay nodo }
finde ( x.left ) //siempre atravesar la izquierda firstprint x.data //imprimir los datos una vez el returnsinOrder nodo izquierdo ( x.right ) ; //recorrer la derecha }
2
recorrer el árbol en pre - orden. Este orden es similar en el orden , salvo que la impresión del nodo está antes que cualquier recorrido . Así , el nodo se imprimirá su valor y , a continuación, recorrer la izquierda. Entonces , cuando la recursión devuelve al nodo después de atravesar la izquierda , el nodo entonces atravesar la derecha . Esto significa que el nodo siempre se imprimirá en sí antes de que cualquier niño nodos impresión :
pública preorden void ( Nodo x ) {
if ( x == null) {return //detiene la recursividad cuando no hay ningún nodo }
impresión x.data //printinOrder ( x.left ) ; //recorrer leftinOrder ( x.right ) ; //recorrer la derecha }
3
recorrer el árbol después de la orden. Esto es lo contrario del recorrido en preorden . Un nodo siempre se verá a sus nodos izquierda o hacia la derecha antes de la impresión en sí , lo que significa que todos los demás nodos secundarios por debajo de ella se imprimirán primero :
pública postorden void ( Nodo x ) {
if ( x == null) {return //detiene la recursividad cuando no hay nodo }
finde ( x.left ) ; //recorrer leftinOrder ( x.right ) ; //recorrer rightprint x.data //print}