public bool ExisteContacto(string usuario) { if (GetRaiz() != null) { NodoAVL aux = this.raiz; while (aux != null) { if (aux.GetUsuario() == usuario) { return(true); } if (aux.GetUsuario().CompareTo(usuario) > 0) { aux = aux.GetHijoIzquierdo(); } else { aux = aux.GetHijoDerecho(); } } } return(false); }
public void Insertar(NodoArbol aux) { string usuario = aux.GetNickname(); string password = aux.GetPassword(); string correo = aux.GetCorreo(); NodoAVL nuevo = new NodoAVL(usuario, password, correo); NodoAVL padrenuevo = null; NodoAVL actual = this.GetRaiz(); if (GetRaiz() == null) { this.raiz = nuevo; } else { if (!ExisteContacto(usuario)) { while (actual != null) { padrenuevo = actual; if (actual.GetUsuario().CompareTo(usuario) > 0) { actual = actual.GetHijoIzquierdo(); } else { actual = actual.GetHijoDerecho(); } } if (padrenuevo.GetUsuario().CompareTo(usuario) > 0) { padrenuevo.SetHijoIzquierdo(nuevo); nuevo.SetPadre(padrenuevo); EquilibrarArbol(padrenuevo, "izquierda", true); } else { padrenuevo.SetHijoDerecho(nuevo); nuevo.SetPadre(padrenuevo); EquilibrarArbol(padrenuevo, "derecha", true); } } } }