public nodotopten(usuario user_) { user = user_; anterior = null; siguiente = null; }
public usuario insertarcontacto(usuario user, usuario contacto) { user.insertarcontacto(contacto); return(user); }
public binario() { raiz = null; }
public nodoinorder(usuario user_) { user = user_; anterior = null; siguiente = null; }
//inserción en el nodo de contacto, el usuario a insertar ha sido previamente buscado o insertado public void insertarcontacto(usuario insert) { this.contactos.insertar(insert, this.contactos.raiz); }
//editar elementos de un nodo public void editar(usuario u, String newnick, String newpass) { u.setnick(newnick); u.setpass(newpass); }
//insertar lista de juegos public void insertarjuego(String userbase_, String oponente_, int desplegadas_, int sobrevivientes_, int destruidas_, int gano_) { usuario insert = buscar(userbase_, raiz); insert.insertarjuego(oponente_, desplegadas_, sobrevivientes_, destruidas_, gano_); }
//método de eliminación de un nodo public void eliminar(String nick_) { usuario temp = buscar(nick_, this.raiz); if (temp != null) { if (temp.izq == null) { if (temp.der == null) {//el nodo es una hoja if (temp.raiz != null) { if (temp.raiz.izq == temp) { temp.raiz.izq = null; } else if (temp.raiz.der == temp) { temp.raiz.der = null; } } else { raiz = null; //el nodo a eliminar era la raiz } } //el nodo tiene un hijo por la derecha else { if (temp.raiz != null) { if (temp.raiz.izq == temp) { temp.raiz.izq = temp.der; } else if (temp.raiz.der == temp) { temp.raiz.der = temp.der; } } else { raiz = temp.der; //el nodo era la raiz } } } else { //el nodo tiene un hijo por la izquierda if (temp.der == null) { if (temp.raiz != null) { if (temp.raiz.izq == temp) { temp.raiz.izq = temp.izq; } else if (temp.raiz.der == temp) { temp.raiz.der = temp.izq; } } else { raiz = temp.izq; //el nodo era la raiz } } //el nodo tiene dos hijos else { usuario sust = buscarmin(temp.der); if (temp.raiz != null) { if (temp.raiz.izq == temp) { temp.raiz.izq = sust; } else if (temp.raiz.der == temp) { temp.raiz.der = sust; } } else { raiz = sust; //el nodo era la raiz } sust.izq = temp.izq; sust.der = temp.der; } } //buscar el nodo adecuado para ocupar el lugar del nodo que se esta eliminando /*usuario aux = sustituir(temp); * if(aux != null) aux.raiz = temp.raiz; * if (temp.raiz != null) * { * if (temp == temp.raiz.izq) temp.raiz.izq = aux; * else if (temp == temp.raiz.der) temp.raiz.der = aux; * } * else raiz = aux;//establecer nueva raiz*/ } }
//método de inserción en el árbol binario public usuario insertar(String nick_, String pass_, String email_, int conectado_, usuario r) { //insertar desde la raiz if (r == null) { //insertar en la raiz if (raiz == null) { raiz = new usuario(nick_, pass_, email_, conectado_); return(raiz); } else { return(insertar(nick_, pass_, email_, conectado_, raiz)); } } else { //el nodo va al hijo izquierdo if (String.Compare(r.getnick(), nick_) > 0) { //insertar si el nodo es nulo if (r.izq == null) { r.izq = new usuario(nick_, pass_, email_, conectado_); r.izq.raiz = r; return(r.izq); } //insertar en el arbol izquierdo else { return(insertar(nick_, pass_, email_, conectado_, r.izq)); } } //el nodo va al hijo derecho else if (String.Compare(r.getnick(), nick_) < 0) { //insertar si el nodo es nulo if (r.der == null) { r.der = new usuario(nick_, pass_, email_, conectado_); r.der.raiz = r; return(r.der); } //insertar en el arbol izquierdo else { return(insertar(nick_, pass_, email_, conectado_, r.der)); } } } return(null); }