//Implemento la interfaz ICloneable para tener la capacidad de clonar Hoja's public object Clone() { Hoja temporal = new Hoja(); temporal.valor = valor; return(temporal); }
private void InicializarHijas() { hijas = new Hoja[2]; for (int i = 0; i < hijas.Length; i++) { hijas[i] = new Hoja(); hijas[i].AsignarPadre(this); } }
private void IntercambiarValores(Hoja actual, Hoja padre) { //Aqui utilice recursividad para poder compararar ademas entre el padre y el objeto actual, tambien entre el padre y su abuelo, y su abuelo y su visabuelo, etc. if (!(padre is null) && actual.valor < padre.valor) { int?valorTemporal = padre.valor; padre.valor = actual.valor; actual.valor = valorTemporal; IntercambiarValores(actual.padre, padre.padre); } }
static void Main(string[] args) { #region AlgunasImplementaciones Hoja inicio = new Hoja(); inicio.AsignarValor(25); //10 inicio.ObtenerHijas()[0].AsignarValor(12); //25 inicio.ObtenerHijas()[1].AsignarValor(10); //12 inicio.ObtenerHijas()[0].ObtenerHijas()[0].AsignarValor(-8); inicio.ObtenerHijas()[0].ObtenerHijas()[1].AsignarValor(34); inicio.ObtenerHijas()[1].ObtenerHijas()[0].AsignarValor(-4); inicio.ObtenerHijas()[1].ObtenerHijas()[1].AsignarValor(-25); //ColaConPrioridad prioridad = new ColaConPrioridad(); //prioridad.Encolar(12); //25 //Console.WriteLine(prioridad.Pico().ObtenerValor()); //prioridad.Encolar(10); //12 //prioridad.Encolar(-8); //prioridad.Encolar(34); //prioridad.Encolar(-4); //prioridad.Encolar(-25); Console.WriteLine(inicio.ObtenerValor()); Console.WriteLine(inicio.ObtenerHijas()[0].ObtenerValor()); Console.WriteLine(inicio.ObtenerHijas()[1].ObtenerValor()); Console.WriteLine(inicio.ObtenerHijas()[0].ObtenerHijas()[0].ObtenerValor()); Console.WriteLine(inicio.ObtenerHijas()[0].ObtenerHijas()[1].ObtenerValor()); Console.WriteLine(inicio.ObtenerHijas()[1].ObtenerHijas()[0].ObtenerValor()); Console.WriteLine(inicio.ObtenerHijas()[1].ObtenerHijas()[1].ObtenerValor()); Console.WriteLine(); //Console.WriteLine(prioridad.Pico().ObtenerHijas()[0].ObtenerValor()); //Console.WriteLine(prioridad.Pico().ObtenerHijas()[1].ObtenerValor()); //Console.WriteLine(prioridad.Pico().ObtenerHijas()[0].ObtenerHijas()[0].ObtenerValor()); //Console.WriteLine(prioridad.Pico().ObtenerHijas()[0].ObtenerHijas()[1].ObtenerValor()); //Console.WriteLine(prioridad.Pico().ObtenerHijas()[1].ObtenerHijas()[0].ObtenerValor()); //Console.WriteLine(prioridad.Pico().ObtenerHijas()[1].ObtenerHijas()[1].ObtenerValor()); //Console.WriteLine(); //Console.WriteLine("Valor Padre: {0}", inicio.ObtenerValor()); //Console.WriteLine("Valor Hija izquierda: {0}", inicio.ObtenerHijas()[0].ObtenerValor()); //Console.WriteLine("Valor Hija derecha: {0}", inicio.ObtenerHijas()[1].ObtenerValor()); //Console.ReadLine(); #endregion Console.ReadLine(); }
private void AsignarPadre(Hoja hoja_padre) { padre = hoja_padre; }