Estructuras_de_Datos/src/cl/cromer/estructuras/code/arbolGeneral/insertar

69 lines
1.2 KiB
Plaintext

public void insertar(int valor) {
if (this.arbol == null) {
// Crear la raiz.
arbol = new ArbolNodo(valor);
return;
}
else {
ArbolNodo nuevo = new ArbolNodo(valor);
ArbolNodo actual = arbol;
ArbolNodo padre;
while (true) {
padre = actual;
if (valor == actual.getValor()) {
// Ya existe.
return;
}
else if (valor < actual.getValor()) {
// Izquerda
actual = actual.getIzquerda();
if (actual == null) {
// Encontró un null, insertar el nodo nuevo.
padre.setIzquerda(nuevo);
return;
}
}
else {
// Derecha
actual = actual.getDerecha();
if (actual == null) {
// Encontró un null, insertar el nodo nuevo.
padre.setDerecha(nuevo);
return;
}
}
}
}
}
final public class ArbolNodo {
private ArbolNodo izquerda;
private ArbolNodo derecha;
private int valor;
public ArbolNodo(int valor) {
this.izquerda = null;
this.derecha = null;
this.valor = valor;
}
public ArbolNodo getIzquerda() {
return izquerda;
}
public void setIzquerda(ArbolNodo izquerda) {
this.izquerda = izquerda;
}
public ArbolNodo getDerecha() {
return derecha;
}
public void setDerecha(ArbolNodo derecha) {
this.derecha = derecha;
}
public int getValor() {
return valor;
}
}