jueves, 14 de noviembre de 2013

Cómo Traverse árboles binarios en Java

Á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 binarios árboles son más que probable que también el diseño de algoritmos para atravesar esas estructuras de datos. Hay tres maneras de atravesar los árboles binarios: en fin, pre-orden, y después de la orden. 

TRAVERSE BINARIO



Lo que necesita

Java Development Kit (JDK)

Editor de texto



Recorrer el binario árbol utilizando en orden de recorrido. 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. Los medios que cualquier nodo sólo se imprimirá si todos sus nodos secundarios del lado izquierdo se imprime en primer lugar:



public class BT {



public void finde (Nodo x) {



if (x == null) {return; / / detiene la recursión cuando no hay nodo}



finde (x.left) / / siempre atraviesan dejado primera impresión x.data / / imprimir los datos una vez que el nodo de la izquierda vuelve a finde (x.right) / / desplazamiento a la derecha}



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 los nodos secundarios imprimir:



preorden public void (Nodo x) {



if (x == null) {return; / / detiene la recursión cuando no hay nodo}



impresión x.data / / print finde (x.left); / / recorrer izquierda finde (x.right); / / recorrer la derecha}



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 en primer lugar:



public void postorden (Nodo x) {



if (x == null) {return; / / detiene la recursión cuando no hay nodo}



finde (x.left); / / recorrer izquierda finde (x.right); / / recorrer la derecha impresión x.data / / print}



 

No hay comentarios:

Publicar un comentario