Tecnología

Inicio

¿Cómo hacer Preordenes Transversal en el árbol binario en Java

Para hacer un "recorrido" de un árbol binario en Java significa hacer un procesamiento algorítmico de los nodos en algún tipo de orden. Un recorrido de "orden previo" significa que el nodo raíz se procesa primero, y luego el resto de nodos del árbol se procesan de forma recursiva. La función de recorrido simplemente imprimir cada nodo que visita a la consola.

Instrucciones

1 Crear una clase de árbol binario de búsqueda simple que tiene un constructor de base, que inicializa el valor del nodo. También se incluye debe ser un método de inserción de recorrer un árbol y crear un nuevo nodo en el lugar correcto.
""public class BinaryTree {
BinaryTree left;
BinaryTree right;
int value;

public BinaryTree(int v) {
value = v;
}

// Insert a value into the tree
public void insert(int v) {
if(v < value) {
if(left == null)
left = new BinaryTree(v);
else
left.insert(v);
}

else if(v > value) {
if(right == null)
right = new BinaryTree(v);
else
right.insert(v);
}
}
}""

2 Construir el nodo raíz del árbol binario, asignándole un valor que está cerca de la media de la de los objetos que va a almacenar. Esto asegurará la eficiencia, ya que su árbol binario tiene que estar bastante bien equilibrado. Si usted está almacenando una distribución de los números del 1 al 100, por ejemplo, 50 es un buen valor para el nodo raíz. ""BinaryTree b = new BinaryTree(50);""

3 Insertar nodos en el árbol en un orden determinado. El árbol binario no es auto-equilibrio, por lo que la inserción de nodos en un orden específico ayuda a retener el equilibrio. Aquí los nodos son lugar para hacer un árbol corto y eficiente equilibrado. ""b.insert(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);""
""b.insert(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);""

4 Hacer un recorrido en preorden por la que atraviesa el nodo de la raíz en primer lugar, a continuación, el árbol de la izquierda y, finalmente, el árbol de la derecha. Es fácil de hacer esto de forma recursiva con un pequeño árbol binario, ya que no se desborde la pila. Si su árbol binario es muy grande, la función de recorrido debe ser implementado de forma iterativa.

5 Añadir un nuevo método, orden previo, a la clase BinaryTree. Aquí el único método imprime el valor de cada nodo que visita. ""public void preorder() {
System.out.println(value);
if(left != null) left.preorder();
if(right != null) right.preorder();
}""
""public void preorder() {
System.out.println(value);
if(left != null) left.preorder();
if(right != null) right.preorder();
}""

6 Llamar al nuevo método después de las inserciones Para imprimir los nodos en preorden. ""b.preorder();"

Consejos y advertencias

  • En sus bibliotecas predeterminadas, Java no proporciona una clase de árbol binario, pero, como se muestra, es lo suficientemente simple para crear una clase de árbol binario básico.