Example #1
0
 public void inicializarArbolBB()
 {
     raiz   = null;
     altura = 0;
     hojas  = 0;
     ramas  = 0;
     nivel  = 0;
 }
Example #2
0
 private int cantidadRamas(NodoArbolBB actualRaiz)
 {
     if (actualRaiz != null)
     {
         int ramasIzq = cantidadRamas(actualRaiz.hijoIzq);
         int ramasDer = cantidadRamas(actualRaiz.hijoDer);
         contadorRamas = ramasDer + ramasIzq + 1;
         return(contadorRamas);
     }
     return(0);
 }
Example #3
0
 //Eliminar nodo del Arbol Binario
 public void eliminarABB(ref NodoArbolBB actualRaiz, string nickName)
 {
     if (actualRaiz != null)
     {
         if (nickName.CompareTo(actualRaiz.nickName) < 0)
         {
             eliminarABB(ref actualRaiz.hijoIzq, nickName);
         }
         else if (nickName.CompareTo(actualRaiz.nickName) > 0)
         {
             eliminarABB(ref actualRaiz.hijoDer, nickName);
         }
         else
         {
             NodoArbolBB nodoEliminar = actualRaiz;
             if (nodoEliminar.hijoDer == null)
             {
                 actualRaiz = nodoEliminar.hijoIzq;
             }
             else if (nodoEliminar.hijoIzq == null)
             {
                 actualRaiz = nodoEliminar.hijoDer;
             }
             else
             {
                 NodoArbolBB nodoAux = null;
                 NodoArbolBB Aux     = actualRaiz.hijoIzq;
                 bool        bandera = false;
                 while (Aux.hijoDer != null)
                 {
                     nodoAux = Aux;
                     Aux     = nodoAux.hijoDer;
                     bandera = true;
                 }
                 //Reacomodando el arbol para que no se pierdan los apuntadores y las referencias.
                 actualRaiz.nickName  = Aux.nickName;
                 actualRaiz.password  = Aux.password;
                 actualRaiz.email     = Aux.email;
                 actualRaiz.conectado = Aux.conectado;
                 actualRaiz.LDJuego   = Aux.LDJuego;
                 nodoEliminar         = Aux;
                 if (bandera == true)
                 {
                     nodoAux.hijoDer = Aux.hijoIzq;
                 }
                 else
                 {
                     actualRaiz.hijoIzq = Aux.hijoIzq;
                 }
             }
         }
     }
 }
Example #4
0
 private int nivelMaximo(NodoArbolBB actualRaiz)
 {
     if (actualRaiz != null)
     {
         if ((actualRaiz.hijoIzq != null) || (actualRaiz.hijoDer != null))//si la raiz tiene hijos llamada metodo recursivo
         {
             int contIzq = nivelMaximo(actualRaiz.hijoIzq);
             int contDer = nivelMaximo(actualRaiz.hijoDer);
             return(1 + Math.Max(contIzq, contDer));
         }
     }
     return(0);
 }
Example #5
0
 private static int cantidadHojas(NodoArbolBB actualRaiz)
 {
     if (actualRaiz != null)
     {
         if ((actualRaiz.hijoIzq == null) && (actualRaiz.hijoDer == null))
         {
             return(1);
         }
         else
         {
             return(cantidadHojas(actualRaiz.hijoIzq) + cantidadHojas(actualRaiz.hijoDer));
         }
     }
     return(0);
 }
Example #6
0
        private static void insertarABB(NodoArbolBB actualRaiz, string nickName, string password, string email, bool conectado)//, ListaDobleJuego LDJuego)
        {
            //Validar si el nuevo nada es mayor o menor para colocarlo en el arbol
            //Lado Izquierdo
            if (nickName.CompareTo(actualRaiz.nickName) < 0)//(String.Compare(nickName,actualRaiz.nickName)==-1)
            {
                if (actualRaiz.hijoIzq == null)
                {
                    NodoArbolBB nuevoNodo = new NodoArbolBB();
                    nuevoNodo.nickName  = nickName;
                    nuevoNodo.password  = password;
                    nuevoNodo.email     = email;
                    nuevoNodo.conectado = conectado;
                    //nuevoNodo.LDJuego = LDJuego;

                    actualRaiz.hijoIzq = nuevoNodo;
                }
                else
                {
                    insertarABB(actualRaiz.hijoIzq, nickName, password, email, conectado);//, LDJuego);
                }
            }
            else if (nickName.CompareTo(actualRaiz.nickName) > 0)//(String.Compare(nickName,actualRaiz.nickName)==1)
            {
                //Lado derecho
                if (actualRaiz.hijoDer == null)
                {
                    NodoArbolBB nuevoNodo = new NodoArbolBB();
                    nuevoNodo.nickName  = nickName;
                    nuevoNodo.password  = password;
                    nuevoNodo.email     = email;
                    nuevoNodo.conectado = conectado;
                    //nuevoNodo.LDJuego = LDJuego;

                    actualRaiz.hijoDer = nuevoNodo;
                }
                else
                {
                    insertarABB(actualRaiz.hijoDer, nickName, password, email, conectado);//, LDJuego);
                }
            }
            else
            {
                Console.WriteLine("Nodo Existente");
                Console.ReadLine();
            }
        }
Example #7
0
        private string InOrden(NodoArbolBB actualRaiz)
        {
            if (actualRaiz != null)
            {
                graph += "\nnodo" + actualRaiz.nickName.ToString() + "[label=\" <f0> |<f1> " + actualRaiz.nickName.ToString() + " \nEmail: " + actualRaiz.email + " \nConectado: " + actualRaiz.conectado.ToString() + " |<f2>\"]; \n";
                if (actualRaiz.hijoIzq != null)
                {
                    InOrden(actualRaiz.hijoIzq);
                    graph += "\n\"nodo" + actualRaiz.nickName.ToString() + "\":f0 -> \"nodo" + actualRaiz.hijoIzq.nickName.ToString() + "\":f1;";
                }

                if (actualRaiz.hijoDer != null)
                {
                    InOrden(actualRaiz.hijoDer);
                    graph += "\n\"nodo" + actualRaiz.nickName.ToString() + "\":f2 -> \"nodo" + actualRaiz.hijoDer.nickName.ToString() + "\":f1;";
                }
            }
            return(graph);
        }
Example #8
0
 private static string passwordMetodo(NodoArbolBB actualRaiz, string usuario, string password)
 {
     if (actualRaiz != null)
     {
         if (usuario.CompareTo(actualRaiz.nickName) < 0) //(String.Compare(usuario, actualRaiz.nickName) == -1)
         {
             /*
              * Buscar en el subarbol Izquierdo
              */
             if (actualRaiz.hijoIzq == null)
             {
                 Console.WriteLine("ERROR, No se encuentra el Nodo...");
                 Console.ReadLine();
             }
             else
             {
                 usuarioMetodo(actualRaiz.hijoIzq, usuario);
             }
         }
         else if (usuario.CompareTo(actualRaiz.nickName) > 0)
         {
             /*
              * Buscar en el subarbol Derecho
              */
             if (actualRaiz.hijoDer == null)
             {
                 Console.WriteLine("ERROR, No se encuentra el Nodo...");
                 Console.ReadLine();
             }
             else
             {
                 usuarioMetodo(actualRaiz.hijoDer, usuario);
             }
         }
         else
         {
             return(password);
         }
     }
     return("no hay valores");
 }
Example #9
0
 private int alturaArbolBB(NodoArbolBB actualRaiz)
 {
     if (actualRaiz != null)
     {
         if ((actualRaiz.hijoDer != null) || (actualRaiz.hijoIzq != null))
         {
             int camIzq = alturaArbolBB(actualRaiz.hijoIzq);
             int camDer = alturaArbolBB(actualRaiz.hijoDer);
             if (camDer > camIzq)
             {
                 return(camDer + 1);
             }
             else
             {
                 return(camIzq + 1);
             }
         }
         return(1); //retorna 1 cuando termina de buscar el mas a la izquierda y empieza a retorna el valor
     }
     return(0);     //retorna 0 si encuentra que la raiz del arbol en nula
 }
Example #10
0
        public void insertarABB(string nickName, string password, string email, bool conectado)//, ListaDobleJuego LDJuego)
        {
            //Creando el nuevo nodo
            NodoArbolBB nuevoNodo = null;

            nuevoNodo           = new NodoArbolBB();
            nuevoNodo.nickName  = nickName;
            nuevoNodo.password  = password;
            nuevoNodo.email     = email;
            nuevoNodo.conectado = conectado;
            //nuevoNodo.LDJuego = LDJuego;
            nuevoNodo.hijoDer = null;
            nuevoNodo.hijoIzq = null;

            if (raiz == null)
            {
                raiz = nuevoNodo;
            }
            else
            {
                insertarABB(raiz, nickName, password, email, conectado);//, LDJuego);
            }
        }
Example #11
0
        //Arbol Espejo
        private NodoArbolBB arbolEspejo(NodoArbolBB actualRaiz)
        {
            NodoArbolBB temporal;

            if (actualRaiz != null)
            {
                temporal = actualRaiz.hijoIzq;
                graph1  += "\nnodo" + actualRaiz.nickName + "[label=\" <f0> |<f1> " + actualRaiz.nickName + " \nEmail: " + actualRaiz.email + " \nConectado: " + actualRaiz.conectado.ToString() + " |<f2>\"]; \n";
                if ((actualRaiz.hijoIzq != null && actualRaiz.hijoDer != null))
                {
                    actualRaiz.hijoIzq = arbolEspejo(actualRaiz.hijoDer);
                    graph1            += "\n\"nodo" + actualRaiz.nickName.ToString() + "\":f0 -> \"nodo" + actualRaiz.hijoIzq.nickName.ToString() + "\":f1;";
                    actualRaiz.hijoDer = arbolEspejo(temporal);
                    graph1            += "\n\"nodo" + actualRaiz.nickName.ToString() + "\":f2 -> \"nodo" + actualRaiz.hijoDer.nickName.ToString() + "\":f1;";
                }
                else
                {
                    //    //graph1 += "\n\"nodo" + actualRaiz.nickName + "\":f0 -> \"nodo" + actualRaiz.hijoDer.nickName + "\":f1;";
                    actualRaiz.hijoIzq = arbolEspejo(actualRaiz.hijoDer);
                    actualRaiz.hijoDer = arbolEspejo(temporal);
                }
            }
            return(actualRaiz);
        }
Example #12
0
 public string usuarioLogin(NodoArbolBB actualRaiz, string usuario, string password)
 {
     return("");
 }