示例#1
0
 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);
 }
示例#2
0
        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);
                    }
                }
            }
        }