コード例 #1
0
 private void buscar2(NodoArbolABB raiz, IComparable usuario, String password)
 {
     Verificacion = 0;
     if (raiz == null)
     {
         //Console.WriteLine("datos incorrectos");
         Verificacion = 0;
     }
     else
     {
         if (raiz.getNickname().ToString() == usuario.ToString())
         {
             //Console.WriteLine("datos encontrados");
             Verificacion = 1;
         }
         else if (usuario.CompareTo(raiz.getNickname()) <= 0)
         {
             buscar2(raiz.getIzquierdo(), usuario, password);
         }
         else
         {
             buscar2(raiz.getDerecho(), usuario, password);
         }
     }
 }
コード例 #2
0
        private void Rlista(NodoArbolABB actual)
        {
            if (actual != null)
            {
                if (actual.getListaJuegos().primero != null)
                {
                    NodoListaDoble actual2 = actual.getListaJuegos().primero;
                    while (actual2 != null)
                    {
                        if (actual.getNicknamee() == actual2.getNickname())
                        {
                            if (contador == 0)
                            {
                                fichero.Write(actual2.getNickname() + ":f1 -> " + "\"" + "Usuario: " + actual2.getNickname() + ", \n Oponente: " + actual2.getNicknameOponente() + ", \n Unidades Desplegadas: " + actual2.getUnidadesDesplegadas().ToString() + ", \n Unidades Sobrevivientes: " + actual2.getUnidadesSobrevivientes().ToString() + ", \n Unidades Destruidas: " + actual2.getUnidadesDestruidas().ToString() + ", \n Victoria: " + actual2.getEstadoVictoria().ToString() + "\"[dir=both];");
                                fichero.Write("\n");
                                contador = 1;
                            }
                            else
                            {
                                fichero.Write("\"" + "Usuario: " + actual2.getNickname() + ", \n Oponente: " + actual2.getAnterior().getNicknameOponente() + ", \n Unidades Desplegadas: " + actual2.getUnidadesDesplegadas().ToString() + ", \n Unidades Sobrevivientes: " + actual2.getUnidadesSobrevivientes().ToString() + ", \n Unidades Destruidas: " + actual2.getUnidadesDestruidas().ToString() + ", \n Victoria: " + actual2.getEstadoVictoria().ToString() + "\"" + "->" + "\"" + "Usuario: " + actual2.getNickname() + ", \n Oponente: " + actual2.getNicknameOponente() + ", \n Unidades Desplegadas: " + actual2.getUnidadesDesplegadas().ToString() + ", \n Unidades Sobrevivientes: " + actual2.getUnidadesSobrevivientes().ToString() + ", \n Unidades Destruidas: " + actual2.getUnidadesDestruidas().ToString() + ", \n Victoria: " + actual2.getEstadoVictoria().ToString() + "\"[dir=both];");
                                fichero.Write("\n");
                            }

                            //Console.WriteLine(actual2.getNickname() + " Oponente: " + actual2.getNicknameOponente());
                            actual2 = actual2.getSiguiente();
                        }
                        else
                        {
                            actual2 = actual2.getSiguiente();
                        }
                    }
                    contador = 0;
                }
            }
        }
コード例 #3
0
        public void EliminarNodo(NodoArbolABB valor,IComparable usuario,String Contra, String Email, int Conexion)
        {
            if ((valor.getIzquierdo() != null) && (valor.getDerecho() != null))
            {
                //Elimina con 2 hijos
                //NodoArbolABB minimo = valor.getDerecho().minimo();
                //this.setNickname(minimo.getNickname());
                //valor.getDerecho().EliminarNodo(valor, minimo.getNickname(), Contra, Email, Conexion);
                

            }
            else if ((valor.getIzquierdo() != null) || (valor.getDerecho() != null))
            {
                //Eliminar con 1 hijo
                NodoArbolABB sustituto = valor.getIzquierdo() != null ? valor.getIzquierdo() : valor.getDerecho();
                this.setNickname(sustituto.getNickname());
                this.setIzquierdo(sustituto.getIzquierdo());
                this.setDerecho(sustituto.getDerecho());
                
            }
            else
            {
                //Eliminar sin hijos
                if (valor.getPadre() != null)
                {
                    //if (raiz == raiz.getPadre().getIzquierdo()) raiz.getPadre().getIzquierdo() = null;
                    if (this == valor.getPadre().getIzquierdo()) valor.getPadre().setIzquierdo(null);
                    if (this == valor.getPadre().getDerecho()) valor.getPadre().setDerecho(null);
                    valor.setPadre(null);

                }
                valor = null;
            }
        }
コード例 #4
0
 private void insertarConPadre(IComparable Usuario, String Contra, String Email, int Conexion, NodoArbolABB Padre,ListaDoble ListaJuegos)
 {
     if (Usuario.CompareTo(Nickname)<0)
     {
         if (Izquierdo==null)
         {
             Izquierdo = new NodoArbolABB(Usuario, Contra, Email, Conexion,this,ListaJuegos);
         }
         else
         {
             Izquierdo.insertarConPadre(Usuario, Contra, Email, Conexion,this,ListaJuegos);
         }
     }
     else if (Usuario.CompareTo(Nickname) > 0)
     {
         if (Derecho == null)
         {
             Derecho = new NodoArbolABB(Usuario, Contra, Email, Conexion,this,ListaJuegos);
         }
         else
         {
             Derecho.insertarConPadre(Usuario, Contra, Email, Conexion,this,ListaJuegos);
         }
     }
     else
     {
         Console.WriteLine("No se permiten valores duplicados--> " + Usuario.ToString());
     }
 }
コード例 #5
0
 private void inorden(NodoArbolABB a)
 {
     if (a == null)
     {
         return;
     }
     inorden(a.getIzquierdo());
     Console.Write(a.getNicknamee() + ",");
     inorden(a.getDerecho());
 }
コード例 #6
0
 public void Insertar(IComparable Nickname, String Password, String Correo, int IndicadorConexion, ListaDoble ListaJuegos)
 {
     if (ArbolVacio(RaizABB))
     {
         RaizABB = new NodoArbolABB(Nickname, Password, Correo, IndicadorConexion, null, ListaJuegos);
     }
     else
     {
         RaizABB.insertar(Nickname, Password, Correo, IndicadorConexion, ListaJuegos);
     }
 }
コード例 #7
0
 public Boolean ArbolVacio(NodoArbolABB Raiz)
 {
     if (Raiz == null)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
コード例 #8
0
 private void list(NodoArbolABB actual)
 {
     if (actual.getIzquierdo() != null)
     {
         Rlista(actual.getIzquierdo());
         list(actual.getIzquierdo());
     }
     if (actual.getDerecho() != null)
     {
         Rlista(actual.getDerecho());
         list(actual.getDerecho());
     }
 }
コード例 #9
0
 public NodoArbolABB(IComparable Nickname, String Password, String Correo, int IndicadorConexion, NodoArbolABB Padre,ListaDoble ListaJuegos)
 {
     this.Nickname = Nickname;
     this.Usuario = Nickname.ToString();
     this.Password = Password;
     this.Correo = Correo;
     this.IndicadorConexion = IndicadorConexion;
     this.Padre = Padre;
     this.Izquierdo = null;
     this.ListaJuegos = ListaJuegos;
     this.Derecho = null;
     this.id = Correlativo++;
     //this.id = Correlativo++;
 }
コード例 #10
0
 private void Reemplazar(NodoArbolABB raiz, IComparable usuario, String contra, String Correo, int IndicadorConexion)
 {
     if (raiz != null)
     {
         if (raiz.getNicknamee() == usuario.ToString())
         {
             //Console.WriteLine("datos encontrados");
             raiz.EliminarNodo(raiz, usuario, contra, Correo, IndicadorConexion);
         }
         else if (usuario.CompareTo(raiz.getNickname()) <= 0)
         {
             Reemplazar(raiz.getIzquierdo(), usuario, contra, Correo, IndicadorConexion);
         }
         else
         {
             Reemplazar(raiz.getDerecho(), usuario, contra, Correo, IndicadorConexion);
         }
     }
 }
コード例 #11
0
        private void inorden(NodoArbolABB a)
        {
            if (a == null)
            {
                return;
            }
            inorden(a.getIzquierdo());
            Console.Write(a.getNicknamee() + ",");
            //if (a.getPadre() == null)
            //{
            //    Console.WriteLine(" {//} "+a.getNickname().ToString() + ",");
            //}
            //else
            //{
            //    Console.WriteLine(a.getNickname().ToString() + " " + a.getPadre().getNickname().ToString() + " , ");
            //}

            inorden(a.getDerecho());
        }
コード例 #12
0
 private void grafoArbol(NodoArbolABB actual)
 {
     //StreamWriter fichero = new StreamWriter("ABBTreeConLista.dot");
     if (actual.getIzquierdo() != null)
     {
         fichero.Write(actual.getIzquierdo().getNicknamee() + " [label=\"<f0> |<f1>" + actual.getIzquierdo().getNicknamee() + " |<f2>\"];");
         fichero.Write("\n");
         fichero.Write(actual.getNicknamee() + ":f0 -> " + actual.getIzquierdo().getNicknamee() + ":f1;");
         fichero.Write("\n");
         Rlista(actual.getIzquierdo());
         //Console.WriteLine(graflista(actual.getIzquierdo()));
         grafoArbol(actual.getIzquierdo());
     }
     if (actual.getDerecho() != null)
     {
         fichero.Write(actual.getDerecho().getNicknamee() + " [label=\"<f0> |<f1>" + actual.getDerecho().getNicknamee() + " |<f2>\"];");
         fichero.Write("\n");
         fichero.Write(actual.getNicknamee() + ":f2 -> " + actual.getDerecho().getNicknamee() + ":f1;");
         fichero.Write("\n");
         Rlista(actual.getDerecho());
         //Console.WriteLine(graflista(actual.getIzquierdo()));
         grafoArbol(actual.getDerecho());
     }
 }
コード例 #13
0
 public ArbolBinarioBusqueda()
 {
     RaizABB = null;
 }
コード例 #14
0
 public void setPadre(NodoArbolABB Padre)
 {
     this.Padre = Padre;
 }
コード例 #15
0
 public void setDerecho(NodoArbolABB Derecho)
 {
     this.Derecho = Derecho;
 }
コード例 #16
0
 public void setIzquierdo(NodoArbolABB Izquierdo)
 {
     this.Izquierdo = Izquierdo;
 }