// Elimina el registro private void elimarRegistro(Pagina raiz, NodoB clave) { int pos = 0; NodoB suce; if (vacio(raiz)) { this.esta = false; } else { pos = buscarNodo(clave, raiz); if (esta) { if (vacio(raiz.ramas[pos - 1])) { quitar(raiz, pos); } else { sucesor(raiz, pos); elimarRegistro(raiz.ramas[pos], raiz.claves[pos - 1]); } } else { elimarRegistro(raiz.ramas[pos], clave); if ((raiz.ramas[pos] != null) && (raiz.ramas[pos].cuentas < 2)) { restablecer(raiz, pos); } } } }
//Eliminar Privado private void eliminarPrivad(Pagina raiz, NodoB clave) { try { elimarRegistro(raiz, clave); } catch (Exception e) { this.esta = false; // consola = "error" } if (!esta) { // consola = "No se encontro el elemento" } else { if (raiz.cuentas == 0) { raiz = raiz.ramas[0]; } this.p = raiz; // consola = "Elemento eliminado" } }
public bool editarHorario(int codigo, NodoB nuevo) { this.editado = false; if (this.p.editarHorario(codigo, nuevo)) { return(true); } editarHorarioPrivado(codigo, nuevo, this.p); return(this.editado); }
// Inicia las operaciones de eliminar public void eliminarHorario(NodoB clave) { if (vacio(this.p)) { // NO elimina } else { eliminarPrivad(this.p, clave); } }
//Metodo privado que hace el llamado a las demas metodos private void insertaPrivado(NodoB clave, Pagina raiz) { empujar(clave, raiz); if (this.empA) { this.p = new Pagina(); this.p.cuentas = 1; this.p.claves[0] = this.x; this.p.ramas[0] = raiz; this.p.ramas[1] = this.xr; } // "Arbol B insercion completa" }
// Metodo Encargado de Meter Hoja private void meterHoja(NodoB clave, Pagina raiz, int k) { int i = raiz.cuentas; while (i != k) { raiz.claves[i] = raiz.claves[i - 1]; raiz.ramas[i + 1] = raiz.ramas[i]; i--; } raiz.claves[k] = clave; raiz.ramas[k + 1] = this.xr; raiz.cuentas = ++raiz.cuentas; }
public void insertar(Ataque valor) { if (isEmpty()) { raiz = new NodoB(); raiz.valores = new Lista <Ataque>(); raiz.valores.push(valor); } else { raiz = insertar(raiz, null, valor); } count++; }
private NodoB buscarHorario(int codigo) { this.buscando = null; for (int i = 0; i <= this.p.cuentas; i++) { if (this.p.claves[i] != null) { if (this.p.claves[i].numeroAtaque == codigo) { this.buscando = this.p.claves[i]; return(this.buscando); } } } buscarPrivado(codigo, this.p); return(this.buscando); }
public bool editarHorario(int codigo, NodoB nuevo) { for (int i = 0; i < this.cuentas; i++) { if (claves[i] != null) { if (claves[i].numeroAtaque == codigo) { //claves[i].dia = nuevo.dia; //claves[i].rango = nuevo.rango; //claves[i].refCatedra = nuevo.refCatedra; //claves[i].refCurso = nuevo.refCurso; //claves[i].refSalon = nuevo.refSalon; return(true); } } } return(false); }
private int buscarNodo(NodoB clave, Pagina raiz) { int j = 0; if (clave.numeroAtaque < raiz.claves[0].numeroAtaque) { this.esta = false; j = 0; } else { j = raiz.cuentas; while (clave.numeroAtaque < raiz.claves[j - 1].numeroAtaque && j > 1) { --j; } this.esta = (clave.numeroAtaque == raiz.claves[j - 1].numeroAtaque); } return(j); }
private void editarHorarioPrivado(int codigo, NodoB nuevo, Pagina raiz) { if (raiz.cuentas > 0 && raiz.ramas[0] != null) { for (int i = 0; i <= raiz.cuentas; i++) { if (raiz.ramas[i] != null) { if (raiz.ramas[i].editarHorario(codigo, nuevo)) { this.editado = true; return; } else { editarHorarioPrivado(codigo, nuevo, raiz.ramas[i]); } } } } }
private void buscarPrivado(int codigo, Pagina raiz) { if (raiz.cuentas > 0 && raiz.ramas[0] != null) { for (int i = 0; i <= raiz.cuentas; i++) { if (raiz.ramas[i] != null) { NodoB aux = raiz.ramas[i].encuentraHorario(codigo); if (aux != null) { this.buscando = aux; } else { buscarPrivado(codigo, raiz.ramas[i]); } } } } }
// Metodo Encargado de empujar private void empujar(NodoB clave, Pagina raiz) { int k = 0; this.esta = false; if (vacio(raiz)) { this.empA = true; this.x = clave; this.xr = null; } else { k = buscarNodo(clave, raiz); if (this.esta) { // consola = "no debe haber claves repetidas" this.empA = false; } else { empujar(clave, raiz.ramas[k]); if (this.empA) { if (raiz.cuentas < 4) { this.empA = false; meterHoja(this.x, raiz, k); } else { this.empA = true; dividirNodo(this.x, raiz, k); } } } } }
// Dividir Nodo private void dividirNodo(NodoB clave, Pagina raiz, int k) { int pos = 0; int posmda = 0; if (k <= 2) { posmda = 2; } else { posmda = 3; } Pagina mder = new Pagina(); pos = posmda + 1; while (pos != 5) { mder.claves[(pos - posmda) - 1] = raiz.claves[pos - 1]; mder.ramas[pos - posmda] = raiz.ramas[pos]; ++pos; } mder.cuentas = 4 - posmda; raiz.cuentas = posmda; if (k <= 2) { meterHoja(clave, raiz, k); } else { meterHoja(clave, mder, (k - posmda)); } this.x = raiz.claves[raiz.cuentas - 1]; mder.ramas[0] = raiz.ramas[raiz.cuentas]; raiz.cuentas = --raiz.cuentas; this.xr = mder; }
public string CargaMaestra(string rut) { string cuerpo = ""; bool banderaEncabezado = false; string path = ""; if (rut == "usuarios") { path = (rutaUsuarios); } else if (rut == "tablero") { path = (rutaTablero); } else if (rut == "juegos") { path = (rutaJuegos); } else if (rut == "juegoActual") { path = (rutaJuegoActual); } else if (rut == "contactos") { path = rutaContactos; } else if (rut == "historial") { path = rutaHistorial; } try { StreamReader leer = new StreamReader(path); string getLine = leer.ReadLine(); while (getLine != null) { if (banderaEncabezado != false) { char[] delimitador = { ',' }; string[] dato = getLine.Split(delimitador); if (rut == "usuarios") // Insertado Completo { // [0]Nickname, [1]Contraseña, [2]Correo electronico, [3]"Conectado (1 si, 0 no)" nuevoABB.Insertar(dato[0], dato[1], dato[2], dato[3].ToString()); //nuevoAE.InsertarEspejo(dato[0], dato[1], dato[2], dato[3].ToString()); cuerpo += dato[0] + " - " + dato[1] + " - " + dato[2] + " - " + Convert.ToInt32(dato[3].ToString()) + ";\n"; } else if (rut == "tablero")// Insertado Medio { // [0]jugador, [1]columna, [2]fila, [3]unidad, [4]"destruida(0 si,1 no)" int queNiveles = aNivel(dato[3]); if (queNiveles == 1) { // Envia a Cubo en coordenadas segund nivel de retorno de funcion nuevoC.ingresarAMatriz(dato[1].ToString(), dato[2].ToString(), dato[0].ToString(), dato[3].ToString(), dato[4].ToString(), dato[1].ToString(), dato[2].ToString(), queNiveles.ToString(), 5, 1, 2, 10, true, false, true, true, true, true); n1.ingresarAMatriz(dato[1].ToString(), dato[2].ToString(), dato[0].ToString(), dato[3].ToString(), dato[4].ToString(), dato[1].ToString(), dato[2].ToString(), queNiveles.ToString(), 5, 1, 2, 10, true, false, true, true, true, true); } else if ((queNiveles == 21) || (queNiveles == 22)) { if (queNiveles == 21) { // Envia a Cubo en coordenadas segund nivel de retorno de funcion nuevoC.ingresarAMatriz(dato[1].ToString(), dato[2].ToString(), dato[0].ToString(), dato[3].ToString(), dato[4].ToString(), dato[1].ToString(), dato[2].ToString(), queNiveles.ToString(), 6, 1, 3, 15, true, true, true, true, true, true); n2.ingresarAMatriz(dato[1].ToString(), dato[2].ToString(), dato[0].ToString(), dato[3].ToString(), dato[4].ToString(), dato[1].ToString(), dato[2].ToString(), queNiveles.ToString(), 6, 1, 3, 15, true, true, true, true, true, true); } else if (queNiveles == 22) { // Envia a Cubo en coordenadas segund nivel de retorno de funcion nuevoC.ingresarAMatriz(dato[1].ToString(), dato[2].ToString(), dato[0].ToString(), dato[3].ToString(), dato[4].ToString(), dato[1].ToString(), dato[2].ToString(), queNiveles.ToString(), 5, 6, 3, 10, true, true, true, true, true, true); n2.ingresarAMatriz(dato[1].ToString(), dato[2].ToString(), dato[0].ToString(), dato[3].ToString(), dato[4].ToString(), dato[1].ToString(), dato[2].ToString(), queNiveles.ToString(), 5, 6, 3, 10, true, true, true, true, true, true); } } else if ((queNiveles == 31) || (queNiveles == 32) || (queNiveles == 33)) { if (queNiveles == 31) { // Envia a Cubo en coordenadas segund nivel de retorno de funcion nuevoC.ingresarAMatriz(dato[1].ToString(), dato[2].ToString(), dato[0].ToString(), dato[3].ToString(), dato[4].ToString(), dato[1].ToString(), dato[2].ToString(), queNiveles.ToString(), 9, 1, 3, 15, true, true, true, true, true, true); n3.ingresarAMatriz(dato[1].ToString(), dato[2].ToString(), dato[0].ToString(), dato[3].ToString(), dato[4].ToString(), dato[1].ToString(), dato[2].ToString(), queNiveles.ToString(), 9, 1, 3, 15, true, true, true, true, true, true); } else if (queNiveles == 32) { // Envia a Cubo en coordenadas segund nivel de retorno de funcion nuevoC.ingresarAMatriz(dato[1].ToString(), dato[2].ToString(), dato[0].ToString(), dato[3].ToString(), dato[4].ToString(), dato[1].ToString(), dato[2].ToString(), queNiveles.ToString(), 9, 1, 2, 20, true, true, true, true, true, true); n3.ingresarAMatriz(dato[1].ToString(), dato[2].ToString(), dato[0].ToString(), dato[3].ToString(), dato[4].ToString(), dato[1].ToString(), dato[2].ToString(), queNiveles.ToString(), 9, 1, 2, 20, true, true, true, true, true, true); } else if (queNiveles == 33) { // Envia a Cubo en coordenadas segund nivel de retorno de funcion nuevoC.ingresarAMatriz(dato[1].ToString(), dato[2].ToString(), dato[0].ToString(), dato[3].ToString(), dato[4].ToString(), dato[1].ToString(), dato[2].ToString(), queNiveles.ToString(), 7, 0, 5, 10, false, true, false, false, false, false); n3.ingresarAMatriz(dato[1].ToString(), dato[2].ToString(), dato[0].ToString(), dato[3].ToString(), dato[4].ToString(), dato[1].ToString(), dato[2].ToString(), queNiveles.ToString(), 7, 0, 5, 10, false, true, false, false, false, false); } } else if (queNiveles == 4) { // Envia a Cubo en coordenadas segund nivel de retorno de funcion nuevoC.ingresarAMatriz(dato[1].ToString(), dato[2].ToString(), dato[0].ToString(), dato[3].ToString(), dato[4].ToString(), dato[1].ToString(), dato[2].ToString(), queNiveles.ToString(), 6, 0, 2, 10, false, true, false, false, false, false); n4.ingresarAMatriz(dato[1].ToString(), dato[2].ToString(), dato[0].ToString(), dato[3].ToString(), dato[4].ToString(), dato[1].ToString(), dato[2].ToString(), queNiveles.ToString(), 6, 0, 2, 10, false, true, false, false, false, false); prueba += dato[0].ToString() + ","; } else { // Envia a Cubo en coordenadas segund nivel de retorno de funcion nuevoC.ingresarAMatriz(dato[1].ToString(), dato[2].ToString(), dato[0].ToString(), dato[3].ToString(), dato[4].ToString(), dato[1].ToString(), dato[2].ToString(), queNiveles.ToString(), 6, 0, 2, 10, false, true, false, false, false, false); } cuerpo += dato[0].ToString() + " - " + dato[1].ToString() + " - " + dato[2].ToString() + " - " + dato[3].ToString() + " - " + dato[4].ToString() + ";\n"; } else if (rut == "juegos") // Insertado Completo { // [0]Usuario Base, [1]Oponente, [2]unidades desplegadas, [3]unidades sobrevivientes, [4]Unidades Destruidas, [5]"Gano (1 si, 0 no)" nuevoABB.InsertarJuegos(dato[0], dato[1], dato[2], dato[3], dato[4], dato[5].ToString()); //nuevoAE.InsertarJuegos(dato[0], dato[1], dato[2], dato[3], dato[4], dato[5].ToString()); cuerpo += dato[0] + " - " + dato[1] + " - " + Convert.ToInt32(dato[2].ToString()) + " - " + Convert.ToInt32(dato[3].ToString()) + " - " + Convert.ToInt32(dato[4].ToString()) + " - " + Convert.ToInt32(dato[5].ToString()) + ";\n"; } else if (rut == "juegoActual") { // [0]Nickname1, [1]Nickname2, [2]Naves Nivel 1, [3]Naves Nivel 2, [4]Naves Nivel 3, [5]Naves Nivel 4, // [6]Tamaño X, [7]Tamaño Y, [8]"Variante (1 = normal, 2 = tiempo, 3=base)", [9]Tiempo //string mandar = dato[0].ToString() + "," + dato[1].ToString() + ","+dato[2].ToString() + ","+dato[3].ToString() + "," +dato[4].ToString() + ","; //mandar += dato[5].ToString() + "," + dato[6].ToString() + "," + dato[7].ToString() + "," + dato[8].ToString() + "," + dato[9].ToString(); //string mandar = dato[8]; guardarValoresModoJuego(getLine); cuerpo += dato[0] + " - " + dato[1] + " - " + Convert.ToInt32(dato[2].ToString()) + " - " + Convert.ToInt32(dato[3].ToString()) + " - " + Convert.ToInt32(dato[4].ToString()) + " - " + Convert.ToInt32(dato[5].ToString()) + " - " + Convert.ToInt32(dato[6].ToString()) + " - " + Convert.ToInt32(dato[7].ToString()) + " - " + Convert.ToInt32(dato[8].ToString()) + " - " + dato[9].ToString() + ";\n"; } else if (rut == "contactos") { // [0]Usuario padre, [1]Nickname, [2]ContraseNa, [3]correo electronico AgregarContacto(dato[0].ToString(), dato[1].ToString(), dato[2].ToString(), dato[3].ToString()); } else if (rut == "historial") { //[0]Coordenada X [1]Coordenada Y [2]Unidad Atacante [3]Resultado (golpe = 0 eliminacion de objetivo = 1) [4]Unidad //Int32.Parse NodoB nuevoNodoB = new NodoB(dato[0].ToString(), Int32.Parse(dato[1]), dato[2].ToString(), Int32.Parse(dato[3]), dato[4].ToString(), "", "", "8/01/2017", "02:00", 1); nuevoAB.insertarNuevoHorario(nuevoNodoB); } } banderaEncabezado = true; getLine = leer.ReadLine(); } leer.Close(); } catch (Exception e) { Console.WriteLine("Exception: " + e.Message); } // Crea el dot y el png string cadena = ""; if (rut == "usuarios") { //string etiqueta; //etiqueta = "label=\"Altura: " + nuevoABB.altura() + "\nRamas: " + nuevoABB.ramas() + "\nHojas: " + nuevoABB.hojas() + "\""; cadena = "digraph G {\nlabel = \"Arbol de Usuarios\nAltura: " + nuevoABB.altura() + "\nRamas: " + nuevoABB.ramas() + "\nHojas: " + nuevoABB.hojas() + "\";\n" + nuevoABB.dotArbol() + "\n}"; crearDot(cadena, rut); crearPng(rut); //cadena = ""; //cadena = "digraph G {\nlabel = \"Arbol de Usuarios Espejo\";\n" + nuevoAE.dotArbolEspejo() + "\n}"; //crearDot(cadena, "usuariosEspejo"); //crearPng("usuariosEspejo"); } else if (rut == "tablero") { cadena = "digraph G{\nnode[shape=box, style=filled, color=Gray95];edge[color=black];rankdir=UD;\nlabel = \"Nivel 0\";\n" + nuevoC.textoParaGraficarMatriz() + "}"; crearDot(cadena, "tablero"); crearPng(rut); cadena = "digraph G{\nnode[shape=box, style=filled, color=Gray95];edge[color=black];rankdir=UD;\nlabel = \"Nivel 1 - Submarinos\";\n" + n1.textoParaGraficarMatriz() + "}"; crearDot(cadena, "nivel1"); crearPng("nivel1"); cadena = "digraph G{\nnode[shape=box, style=filled, color=Gray95];edge[color=black];rankdir=UD;\nlabel = \"Nivel 2 - Barcos\";\n" + n2.textoParaGraficarMatriz() + "}"; crearDot(cadena, "nivel2"); crearPng("nivel2"); cadena = "digraph G{\nnode[shape=box, style=filled, color=Gray95];edge[color=black];rankdir=UD;\nlabel = \"Nivel 3 - Aviones\";\n" + n3.textoParaGraficarMatriz() + "}"; crearDot(cadena, "nivel3"); crearPng("nivel3"); cadena = "digraph G{\nnode[shape=box, style=filled, color=Gray95];edge[color=black];rankdir=UD;\nlabel = \"Nivel 4 - Satélites\";\n" + n4.textoParaGraficarMatriz() + "}"; crearDot(cadena, "nivel4"); crearPng("nivel4"); } else if (rut == "juegos") { cadena = "digraph G {\nlabel = \"Arbol de Usuarios y Juegos\";\n" + nuevoABB.dotArbol() + "\n}"; crearDot(cadena, rut); crearPng(rut); //cadena = ""; //cadena = "digraph G {\nlabel = \"Arbol de Usuarios y Juegos Espejo\";\n" + nuevoAE.dotArbolEspejo() + "\n}"; //crearDot(cadena, "juegosEspejo"); //crearPng("juegosEspejo"); } else if (rut == "juegoActual") { //cadena = ""; } else if (rut == "contactos") { cadena = "digraph G {\nlabel = \"Arbol de Usuarios y Contactos\";\n" + nuevoABB.dotArbol() + "\n}"; crearDot(cadena, rut); crearPng(rut); } else if (rut == "historial") { cadena = "digraph G {\nlabel = \"Historial\";\n" + nuevoAB.graficarArbol() + "\n}"; crearDot(cadena, rut); crearPng(rut); } return(cuerpo); }
private NodoB insertar(NodoB raiz, NodoB padre, Ataque valor) { if (raiz.paginas == null) //si no tiene paginas { raiz.valores.push(valor); //agrego directamente el valor al nodo } else//si tiene paginas { Nodus <NodoB> pagina_actual = raiz.paginas.raiz; Nodus <Ataque> padre_aux = raiz.valores.raiz; while (pagina_actual.siguiente != null) //mientras no sea la ultima pagina { if (frenoEnQuePaginaInserto(valor, pagina_actual, padre_aux)) //si valor es menor que el ultimo valor de la pagina actual { break; } /* if (valor.Y < pagina_actual.Item.valores.fin.Item.Y || valor.Y < padre_aux.Item.Y)//si valor es menor que el ultimo valor de la pagina actual * break;*/ if (pagina_actual != null) { pagina_actual = pagina_actual.siguiente; } padre_aux = padre_aux.siguiente; } insertar(pagina_actual.Item, raiz, valor); //inserto en la pagina } quickSort(raiz.valores, 0, raiz.valores.count - 1); //ordeno los valores if (raiz.valores.count == grado) //si tengo un numero valores iguales al grado, mientras deberia ser grado -1 { Nodus <Ataque> aux = raiz.valores.pull((grado / 2) - 1, true); //porque -1? para agarrar el nodo izq para subir, sin -1 toma el der pero aun asi seria correcto bool derecha = false; //esta bandera me ayuda a saber si se generan 2 paginas, o 1 al dividir if (padre == null) //si no hay un nodo superior a este { padre = new NodoB(); //creo un nuevo padre padre.valores = new Lista <Ataque>(); //inicializo su lista de valores padre.paginas = new Lista <NodoB>(); //inicializo su lista de paginas derecha = true; } padre.valores.push(aux.Item); //ingreso el nuevo valor NodoB izq = new NodoB(); //hago un nodo b auxilliar izq.valores = new Lista <Ataque>(); //inicializo su lista de valores int i; for (i = 1; i < (grado / 2); i++) { izq.valores.push(raiz.valores.pop());//agrego los valores al nuevo nodo } #region Recuperar paginas izq if (raiz.paginas != null && raiz.paginas.count > grado) { izq.paginas = new Lista <NodoB>(); for (i = 0; i < (grado / 2); i++) { izq.paginas.push(raiz.paginas.pop()); } } #endregion #region Posicionar Pagina if (!derecha) { Nodus <NodoB> aux_pp = padre.paginas.raiz; int limite = padre.paginas.count; for (i = 0; i < limite; i++) { if (frenoDondeInsertoPagina(izq, aux_pp)) { break; } /*if (izq.valores.fin.Item.Y < aux_pp.Item.valores.raiz.Item.Y)//busco entre que paginas va la nueva pagina * break;*/ aux_pp = aux_pp.siguiente; } //padre.paginas.push(izq); if (i == 0 && aux_pp == padre.paginas.raiz)//si debe ser la primera pagina { padre.paginas.pushTop(izq); } else { padre.paginas.pushAt(izq, i);//si debe ser posicionado en medio } } #endregion else//si padre empezo como null le agrego 2 paginas nuevas, pero si no lo es solo le agrego 1 y la otra solo pierde n valores { padre.paginas.push(izq); NodoB der = new NodoB(); #region Recuperar paginas if (raiz.paginas != null && izq.paginas != null) { der.paginas = new Lista <NodoB>(); while (raiz.paginas.count != 0) { der.paginas.push(raiz.paginas.pop()); } } #endregion der.valores = new Lista <Ataque>(); while (raiz.valores.count != 0) { der.valores.push(raiz.valores.pop()); } padre.paginas.push(der); } } if (padre == null) { return(raiz); } else { return(padre); } }
// Metodo publico encargado de hacer la insercion public void insertarNuevoHorario(NodoB clave) { insertaPrivado(clave, this.p); }
private bool frenoDondeInsertoPagina(NodoB a_insertar, Nodus <NodoB> paginas) { /*if (izq.valores.fin.Item.Y < aux_pp.Item.valores.raiz.Item.Y) * break;*/ switch (patron) { case "CoordenadaY": if (a_insertar.valores.fin.Item.Y < paginas.Item.valores.raiz.Item.Y) { return(true); } return(false); case "CoordenadaX": if (a_insertar.valores.fin.Item.X.CompareTo(paginas.Item.valores.raiz.Item.X) < 0) { return(true); } return(false); case "Resultado": if (a_insertar.valores.fin.Item.Resultado.CompareTo(paginas.Item.valores.raiz.Item.Resultado) < 0) { return(true); } return(false); case "Emisor": if (a_insertar.valores.fin.Item.Emisor.CompareTo(paginas.Item.valores.raiz.Item.Emisor) < 0) { return(true); } return(false); case "Receptor": if (a_insertar.valores.fin.Item.Receptor.CompareTo(paginas.Item.valores.raiz.Item.Receptor) < 0) { return(true); } return(false); case "Fecha": if (a_insertar.valores.fin.Item.Fecha.CompareTo(paginas.Item.valores.raiz.Item.Fecha) < 0) { return(true); } return(false); case "Tiempo Restante": if (a_insertar.valores.fin.Item.Tiempo_restante.CompareTo(paginas.Item.valores.raiz.Item.Tiempo_restante) < 0) { return(true); } return(false); case "No. Ataque": if (a_insertar.valores.fin.Item.Numero_ataque < paginas.Item.valores.raiz.Item.Numero_ataque) { return(true); } return(false); case "Tipo Unidad": if (a_insertar.valores.fin.Item.Tipo_unidad_danyada.CompareTo(paginas.Item.valores.raiz.Item.Tipo_unidad_danyada) < 0) { return(true); } return(false); case "Unidad Atacante": if (a_insertar.valores.fin.Item.Atacante.CompareTo(paginas.Item.valores.raiz.Item.Atacante) < 0) { return(true); } return(false); default: return(true); } }
public ArbolB() { raiz = null; count = 0; //par = esPar(grado); }