public static bool CompararValor(NodoArbolBinario nodoArbolBinario, int valor) { if (nodoArbolBinario == null) { return(false); } if (nodoArbolBinario.ObtenerValor() == valor || CompararValor(nodoArbolBinario.ObeterNodoIzquierda(), valor) || CompararValor(nodoArbolBinario.ObeterNodoDerecha(), valor)) { return(true); } return(false); }
//Inserta los valores ingresados al arreglo del árbol binario private NodoArbolBinario InsertarNodo(NodoArbolBinario nodoArbolBinario, int Nodo) { if (nodoArbolBinario == null) { nodoArbolBinario = new NodoArbolBinario(Nodo); return(nodoArbolBinario); } if (nodoArbolBinario.ObtenerValor() < Nodo) { nodoArbolBinario.AsignarNodoDerecha(InsertarNodo(nodoArbolBinario.ObeterNodoDerecha(), Nodo)); } else { nodoArbolBinario.AsignarNodoIzquierda(InsertarNodo(nodoArbolBinario.ObeterNodoIzquierda(), Nodo)); } return(nodoArbolBinario); }
private static Resultado ObtenerAncestroComunMasCercano(NodoArbolBinario NodoArbol, int valor1, int valor2, NodoArbolBinario nodoPadre = null) { if (NodoArbol == null) { return(new Resultado()); } Resultado result = new Resultado(); if (NodoArbol.ObtenerValor() == valor1) { result.ExisteNodo1 = true; if (NodoArbol.ObeterNodoDerecha() != null && NodoArbol.ObeterNodoDerecha().ObtenerValor() == valor2) { result.NodoArbol = nodoPadre; } else if (NodoArbol.ObeterNodoIzquierda() != null && NodoArbol.ObeterNodoIzquierda().ObtenerValor() == valor2) { result.NodoArbol = nodoPadre; } else { result.NodoArbol = NodoArbol; } return(result); } if (NodoArbol.ObtenerValor() == valor2) { result.ExisteNodo2 = true; if (NodoArbol.ObeterNodoDerecha() != null && NodoArbol.ObeterNodoDerecha().ObtenerValor() == valor1) { result.NodoArbol = nodoPadre; } else if (NodoArbol.ObeterNodoIzquierda() != null && NodoArbol.ObeterNodoIzquierda().ObtenerValor() == valor1) { result.NodoArbol = nodoPadre; } else { result.NodoArbol = NodoArbol; } return(result); } Resultado resultadoIzquierda = ObtenerAncestroComunMasCercano(NodoArbol.ObeterNodoIzquierda(), valor1, valor2, NodoArbol); Resultado resultadoDerecha = ObtenerAncestroComunMasCercano(NodoArbol.ObeterNodoDerecha(), valor1, valor2, NodoArbol); if (resultadoIzquierda.NodoArbol != null && resultadoDerecha.NodoArbol != null) { result.ExisteNodo2 = true; result.ExisteNodo1 = true; result.NodoArbol = NodoArbol; return(result); } if (resultadoIzquierda.NodoArbol != null) { result.ExisteNodo1 = true; result.NodoArbol = resultadoIzquierda.NodoArbol; return(result); } result.ExisteNodo2 = true; result.NodoArbol = resultadoDerecha.NodoArbol; return(result); }
public void AsignarNodoDerecha(NodoArbolBinario nodoDerecho) { derecha = nodoDerecho; }
public void AsignarNodoIzquierda(NodoArbolBinario nodoIzquierdo) { izquierda = nodoIzquierdo; }
public void InsertarNodo(int Nodo) { nodoRaiz = InsertarNodo(nodoRaiz, Nodo); }
public void CrearNodoRaiz(NodoArbolBinario nodoArbolBinario) { nodoRaiz = nodoArbolBinario; }