private bool InsertarR(NodoABB raizSig, NodoABB nuevo) { if (nuevo.nickname.CompareTo(raizSig.nickname) < 0)//&& convertir(nuevo.nickname) < convertir(raizSig.nickname)) { if (raizSig.izq == null) { raizSig.izq = nuevo; return(true); } else { return(InsertarR(raizSig.izq, nuevo)); } } else { if (raizSig.der == null) { raizSig.der = nuevo; return(true); } else { return(InsertarR(raizSig.der, nuevo)); } } }
public void EliminarElem(ref NodoABB raiz, Virus x) { if (raiz != null) { if (raiz.info == x && (raiz.hijoIzq == null) && (raiz.hijoDer == null)) { raiz = null; } else if (raiz.info == x && raiz.hijoIzq != null) { raiz.info = this.mayor(raiz.hijoIzq); EliminarElem(ref raiz.hijoIzq, raiz.info); } else if (raiz.info == x && raiz.hijoIzq == null) { raiz.info = this.menor(raiz.hijoDer); EliminarElem(ref raiz.hijoDer, raiz.info); } else if (raiz.info.hierarchy < x.hierarchy) { EliminarElem(ref raiz.hijoDer, x); } else { EliminarElem(ref raiz.hijoIzq, x); } } }
// -------------------------------------------------------------------------------------------------------------------------------------------------------------- public string espejo() { NodoABB nuevaRaizEspejo = raiz; espejoR(nuevaRaizEspejo); return(dotArbolR(nuevaRaizEspejo));; }
public string dotArbol() { clu = 0; clu2 = 1000; NodoABB aux = raiz; return(dotArbolR(aux)); }
private string postordenR(NodoABB reco) { if (reco != null) { postordenR(reco.izq); postordenR(reco.der); cuerpoPost += reco.nickname + " - "; } return(cuerpoPost); }
private string enordenR(NodoABB reco) { if (reco != null) { enordenR(reco.izq); cuerpoEnorden += reco.nickname + " - "; enordenR(reco.der); } return(cuerpoEnorden); }
public string eliminarContactos(string nick, string ContactoAEliminar) { NodoABB nodoUsuario = RetornarNodoDeABB(raiz, nick); if (nodoUsuario != null) { nodoUsuario.sigAVL.Eliminar(nodoUsuario.sigAVL, ContactoAEliminar); return("si"); } return("no"); }
public string modificarContactos(string nick, string ContactoActual, string pass, string correo) { NodoABB nodoUsuario = RetornarNodoDeABB(raiz, nick); if (nodoUsuario != null) { nodoUsuario.sigAVL.modificar(nodoUsuario.sigAVL, ContactoActual, pass, correo); return("si"); } return("no"); }
public string eliminarJuego(string nick, string jugadorAEliminar) { NodoABB nodoUsuario = RetornarNodoDeABB(raiz, nick); if (nodoUsuario != null) { nodoUsuario.sigLd.eliminar(nodoUsuario.sigLd, jugadorAEliminar); return("si"); } return("no"); }
public Virus menor(NodoABB a) { if (a.hijoIzq == null) { return(a.info); } else { return(menor(a.hijoIzq)); } }
public Virus mayor(NodoABB a) { if (a.hijoDer == null) { return(a.info); } else { return(mayor(a.hijoDer)); } }
public string modificarJuego(string nick, string jugadorViejo, string jugadorNuevo, string uDesplegables, string uSobrevivientes, string uDestruidas, string Gano) { NodoABB nodoUsuario = RetornarNodoDeABB(raiz, nick); if (nodoUsuario != null) { nodoUsuario.sigLd.modificar(nodoUsuario.sigLd, jugadorViejo, jugadorNuevo, uDesplegables, uSobrevivientes, uDestruidas, Gano); return("si"); } return("no"); }
private string preordenR(NodoABB reco) { if (reco != null) { cuerpoPre += reco.nickname + " - "; preordenR(reco.izq); preordenR(reco.der); } return(cuerpoPre); }
public bool verificarABB(string nick) { NodoABB aux = RetornarNodoDeABB(raiz, nick); if (aux != null) { return(true); // Es porque si lo encontro } else { return(false); // Si es null es porque no hay nada } }
public string verificarABBRetornaPass(string nick) { NodoABB aux = RetornarNodoDeABB(raiz, nick); if (aux != null) { return(aux.pass); // Es porque si lo encontro } else { return("x"); // Si es null es porque no hay nada } }
private int alturaR(NodoABB actual) { if (actual == null) { return(0); } else { int hi = alturaR(actual.izq); int hd = alturaR(actual.der); return((hi > hd ? hi : hd) + 1); } }
// -----------------------------------------------------------------------------------------------------------------------------------------INSERTAR CONTACTOS //[0]Usuario padre, [1]Nickname, [2]ContraseNa, [3]correo electronico public string InsertarContactos(string nick, string nickContacto, string pass, string correo) { NodoABB aux = RetornarNodoDeABB(raiz, nick); if (aux != null) { if (aux.nickname == nick) { aux.sigAVL.InsertarAVL(aux.sigAVL, nickContacto, pass, correo); return("si"); } } return("no"); }
// ---------------------------------------------------------------------------------------------------------------------------------------INSERTAR JUGADORES //Usuario Base,Oponente,unidades desplegadas,unidades sobrevivientes,Unidades Destruidas,"Gano (1 si, 0 no)" public string InsertarJuegos(string nick, string jugador, string uDesplegables, string uSobrevivientes, string uDestruidas, string Gano) { NodoABB aux = RetornarNodoDeABB(raiz, nick); if (aux != null) { if (aux.nickname == nick) { aux.sigLd.Insertar(aux.sigLd, jugador, uDesplegables, uSobrevivientes, uDestruidas, Gano); return("si"); } } return("no"); }
private NodoABB RetornarNodoDeABB(NodoABB jj, string nickn) // Retorna el nodo del ABB que estoy buscando { if (jj != null) { if (jj.nickname == nickn) { tmp = jj; } RetornarNodoDeABB(jj.izq, nickn); RetornarNodoDeABB(jj.der, nickn); } return(tmp); }
public bool Insertar(string nombre) { NodoABB nuevo = new NodoABB(); nuevo.nickname = nombre; if (raiz == null) { raiz = nuevo; return(true); } else { return(InsertarR(raiz, nuevo)); } }
private int buscarUsuR(NodoABB rec, string nombre) { if (rec != null) { if (rec.nickname == nombre) { return(verificacion2++); } else { buscarUsuR(rec.izq, nombre); buscarUsuR(rec.der, nombre); } } return(verificacion2); }
public void AgregarElem(ref NodoABB raiz, Virus x) { if (raiz == null) { raiz = new NodoABB(); raiz.info = x; } else if (raiz.info.hierarchy > x.hierarchy) { AgregarElem(ref raiz.hijoIzq, x); } else if (raiz.info.hierarchy < x.hierarchy) { AgregarElem(ref raiz.hijoDer, x); } }
private void espejoR(NodoABB actual) { if (actual == null) { return; } else { NodoABB tmp; espejoR(actual.izq); espejoR(actual.der); tmp = actual.izq; actual.izq = actual.der; actual.der = tmp; } }
private int ramasR(NodoABB actual) { if (actual == null) { return(0); } else { if ((actual.izq != null) || (actual.der != null)) { return(ramasR(actual.der) + ramasR(actual.izq) + 1); } else { return(0); } } }
private int hojasR(NodoABB actual) { if (actual == null) { return(0); } else { if ((actual.izq == null) && (actual.der == null)) { return(1); } else { return(hojasR(actual.izq) + hojasR(actual.der)); } } }
private void modificarR(NodoABB rec, string nick, string nuevoNombre, string nuevaPass, string nuevoCorreo, string nuevoConec) { if (rec != null) { if (rec.nickname == nick) { rec.nickname = ""; rec.nickname = nuevoNombre; rec.pass = nuevaPass; rec.correo = nuevoCorreo; rec.conectado = nuevoConec; } else { modificarR(rec.izq, nick, nuevoNombre, nuevaPass, nuevoCorreo, nuevoConec); modificarR(rec.der, nick, nuevoNombre, nuevaPass, nuevoCorreo, nuevoConec); } } }
private int buscarUsuarioR(NodoABB rec, string nombre, string pass) { if (rec != null) { if ((rec.nickname == nombre) && (rec.pass == pass)) { return(verificacion++); } else { buscarUsuarioR(rec.izq, nombre, pass); buscarUsuarioR(rec.der, nombre, pass); } } else { return(0); } return(verificacion); }
private NodoABB reemplazar(NodoABB act) { NodoABB a, p; p = act; a = act.izq; while (a.der != null) { p = a; a = a.der; } act.nickname = a.nickname; if (p == act) { p.izq = a.izq; } else { p.der = a.izq; } return(a); }
private string dotArbolR(NodoABB actual) { if (actual == null) { return(""); } else { string cadena = ""; cadena += "\"Nickname: " + actual.nickname + "\nContraseña: " + actual.pass + "\nCorreo: " + actual.correo + "\nConectado: " + actual.conectado + "\"[style=filled; color= lightgray;];\n"; if (!string.IsNullOrEmpty(actual.sigLd.mostrar(actual.sigLd))) { cadena += "\"Nickname: " + actual.nickname + "\nContraseña: " + actual.pass + "\nCorreo: " + actual.correo + "\nConectado: " + actual.conectado + "\"->"; cadena += actual.sigLd.mostrar(actual.sigLd) + "\n"; cadena += "subgraph cluster_" + clu + " {style=filled;color=Blue;\n" + actual.sigLd.sub(actual.sigLd) + "}"; clu++; } if (!string.IsNullOrEmpty(actual.sigAVL.mostrarDot(actual.sigAVL))) { cadena += "\"Nickname: " + actual.nickname + "\nContraseña: " + actual.pass + "\nCorreo: " + actual.correo + "\nConectado: " + actual.conectado + "\"->"; cadena += actual.sigAVL.mostrarDot(actual.sigAVL) + "\n"; cadena += "subgraph cluster_" + clu2 + " {style=filled;color=Green;\n" + actual.sigAVL.mostrarsub(actual.sigAVL) + "}"; clu2++; } if (actual.izq != null) { cadena += "\"Nickname: " + actual.nickname + "\nContraseña: " + actual.pass + "\nCorreo: " + actual.correo + "\nConectado: " + actual.conectado + "\" -> \"Nickname: " + actual.izq.nickname + "\nContraseña: " + actual.izq.pass + "\nCorreo: " + actual.izq.correo + "\nConectado: " + actual.izq.conectado + "\";\n"; cadena += dotArbolR(actual.izq); } if (actual.der != null) { cadena += "\"Nickname: " + actual.nickname + "\nContraseña: " + actual.pass + "\nCorreo: " + actual.correo + "\nConectado: " + actual.conectado + "\" -> \"Nickname: " + actual.der.nickname + "\nContraseña: " + actual.der.pass + "\nCorreo: " + actual.der.correo + "\nConectado: " + actual.der.conectado + "\";\n"; cadena += dotArbolR(actual.der); } return(cadena); } }
private NodoABB eliminarR(NodoABB raizSub, string nombre) { if (raizSub == null) { // No se pudo eliminar, no se encontro } else if (nombre.CompareTo(raizSub.nickname) < 0) { NodoABB iz; iz = eliminarR(raizSub.izq, nombre); raizSub.izq = iz; } else if (nombre.CompareTo(raizSub.nickname) > 0) { NodoABB de; de = eliminarR(raizSub.der, nombre); raizSub.der = de; } else { NodoABB q; q = raizSub; if (q.izq == null) { raizSub = q.der; } else if (q.der == null) { raizSub = q.der; } else { q = reemplazar(q); } q = null; } return(raizSub); }