NodoArbol - Algoritmos - Lucas Silvera

 avatar
unknown
java
4 years ago
1.6 kB
5
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...