public Nodo BusquedaMenor(Nodo nodo, Nodo nodo_menor) { if (nodo != null) { if (Comparador.mayor_que(nodo.getUsuario(), nodo_menor.getUsuario())) { nodo_menor = nodo; } else { nodo_menor = BusquedaMenor(nodo.getIzquierda(), nodo_menor); } } return(nodo_menor); }
public Usuario ObtieneUsuario(Nodo nodo, Usuario usuario) { if (nodo != null) { if (nodo.getUsuario().nickname == usuario.nickname) { return(nodo.getUsuario()); } else if (Comparador.mayor_que(usuario, nodo.getUsuario())) { return(ObtieneUsuario(nodo.getDerecha(), usuario)); } else if (Comparador.menor_que(usuario, nodo.getUsuario())) { return(ObtieneUsuario(nodo.getIzquierda(), usuario)); } return(null); } return(null); }
public Nodo RemplazoMenor(Nodo nodo, Nodo nodo_menor) { if (Comparador.iguales(nodo.getUsuario(), nodo_menor.getUsuario())) { nodo = nodo.getDerecha(); } else if (nodo.getIzquierda() != null && nodo.getDerecha() == null) { Nodo izquierda; izquierda = RemplazoMenor(nodo.getIzquierda(), nodo_menor); nodo.setIzquierda(izquierda); } else if (nodo.getDerecha() != null && nodo.getIzquierda() == null) { Nodo derecha; derecha = RemplazoMenor(nodo.getDerecha(), nodo_menor); nodo.setDerecha(derecha); } return(nodo); }
public Nodo ModificaUsuario(Nodo nodo, Usuario usuario) { if (nodo != null) { if (nodo.getUsuario().nickname == usuario.nickname) { nodo.setUsuario(usuario); return(nodo); } else if (Comparador.mayor_que(usuario, nodo.getUsuario())) { nodo.setDerecha(ModificaUsuario(nodo.getDerecha(), usuario)); } else if (Comparador.menor_que(usuario, nodo.getUsuario())) { nodo.setIzquierda(ModificaUsuario(nodo.getIzquierda(), usuario)); } return(nodo); } return(nodo); }
public Usuario Sesion(Nodo nodo, Usuario usuario) { if (nodo != null) { if (nodo.getUsuario().nickname == usuario.nickname) { if (nodo.getUsuario().clave == Usuario.GenerarSha1(usuario.clave)) { return(nodo.getUsuario()); } return(null); } else if (Comparador.mayor_que(usuario, nodo.getUsuario())) { return(Sesion(nodo.getDerecha(), usuario)); } else if (Comparador.menor_que(usuario, nodo.getUsuario())) { return(Sesion(nodo.getIzquierda(), usuario)); } return(null); } return(null); }
public Nodo BusquedaEliminarNodo(Nodo nodo, Usuario usuario) { if (nodo == null) { //NO EXISTE } else if (Comparador.iguales(usuario, nodo.getUsuario())) { nodo = RemplazoNodo(nodo); } else if (Comparador.mayor_que(usuario, nodo.getUsuario())) { Nodo derecha; derecha = BusquedaEliminarNodo(nodo.getDerecha(), usuario); nodo.setDerecha(derecha); } else if (Comparador.menor_que(usuario, nodo.getUsuario())) { Nodo izquierda; izquierda = BusquedaEliminarNodo(nodo.getIzquierda(), usuario); nodo.setIzquierda(izquierda); } return(nodo); }
public Nodo InsertarValor(Nodo nodo, Usuario usuario, Logical h) { Nodo n1; if (nodo == null || nodo.getUsuario() == null) { nodo = new Nodo(); nodo.setUsuario(usuario); h.setLogical(true); } else if (Comparador.menor_que(usuario, nodo.getUsuario())) { Nodo izquierda; izquierda = InsertarValor(nodo.getIzquierda(), usuario, h); nodo.setIzquierda(izquierda); if (h.booleanValue()) { // decrementa el fe por aumentar la altura de rama izquierda switch (nodo.fe) { case 1: nodo.fe = 0; h.setLogical(false); break; case 0: nodo.fe = -1; break; case -1: // aplicar rotación a la izquierda n1 = (Nodo)nodo.getIzquierda(); if (n1.fe == -1) { nodo = rotacionII(nodo, n1); this.inserta_texto("Factor de equilibrio = -2; Nodos en Rotacion =" + nodo.getUsuario().nickname + "," + n1.getUsuario().nickname + " Rotacion II"); } else { nodo = rotacionID(nodo, n1); this.inserta_texto("Factor de equilibrio = -2; Nodos en Rotacion =" + nodo.getUsuario().nickname + "," + n1.getUsuario().nickname + " Rotacion ID"); } h.setLogical(false); break; } } } else if (Comparador.mayor_que(usuario, nodo.getUsuario())) { Nodo derecha; derecha = InsertarValor(nodo.getDerecha(), usuario, h); nodo.setDerecha(derecha); if (h.booleanValue()) { // incrementa el fe por aumentar la altura de rama izquierda switch (nodo.fe) { case 1: // aplicar rotación a la derecha n1 = (Nodo)nodo.getDerecha(); if (n1.fe == +1) { nodo = rotacionDD(nodo, n1); this.inserta_texto("Factor de equilibrio = 2; Nodos en Rotacion =" + nodo.getUsuario().nickname + "," + n1.getUsuario().nickname + " Rotacion DD"); } else { nodo = rotacionDI(nodo, n1); this.inserta_texto("Factor de equilibrio = 2; Nodos en Rotacion =" + nodo.getUsuario().nickname + "," + n1.getUsuario().nickname + " Rotacion DI"); } h.setLogical(false); break; case 0: nodo.fe = +1; break; case -1: nodo.fe = 0; h.setLogical(false); break; } } } else { //IGUALES } return(nodo); }