NodoArbol - Algoritmos - Lucas Silvera
unknown
java
4 years ago
1.6 kB
7
Indexable
package Sem2;
public class NodoArbol {
private int valor;
private NodoArbol nodoIzq;
private NodoArbol nodoDer;
public NodoArbol(int valor) {
this.valor = valor;
this.nodoIzq = null;
this.nodoDer = null;
}
public int getValor() {
return valor;
}
public void setValor(int valor) {
this.valor = valor;
}
public NodoArbol getNodoIzq() {
return nodoIzq;
}
public NodoArbol getNodoDer() {
return nodoDer;
}
public void insertar (int _valor) {
/* Este es un caso interesante y creo vale la pena explicarlo, acá estamos usando recursividad para crear nuevos nodos, cuándo uno de los nodos, cada nodo
* está compuesto por un valor y otros dos nodos vacíos, acá con estos if y else detectamos si el nuevo valor que vamos a insertar debe ir a la izq o derecha
* dependiendo si es mayor o menor, una vez encuentra su camino, verifica si está vacío el nodo, en caso de estarlo, se inserta ahí, en caso de no estarlo
* vuelve a llamar a la función insertar pero esta vez dicha función se ejecuta en el nodo en el que estamos parados y así sucesivamente hasta que
* encuentra un nodo vacío para insertar los nuevos valores */
if(_valor < this.valor) {
//Insertamos en el lado izq.
if(this.nodoIzq == null) {
this.nodoIzq = new NodoArbol (_valor);
}else {
this.nodoIzq.insertar(_valor);
}
}else {
//Insertamos en el lado derecho.
if(this.nodoDer == null) {
this.nodoDer = new NodoArbol (_valor);
} else {
this.nodoDer.insertar(_valor);
}
}
}
}
Editor is loading...