예제 #1
0
 public NodoAvl(NodoABB usuario)
 {
     this.usuario  = usuario;
     this.nickname = null;
     izq           = der = null;
     fe            = 0;
 }
예제 #2
0
파일: ABB.cs 프로젝트: Ebenx/EDD_201504530
        public NodoABB buscarR(NodoABB raiz, string nick)
        {
            if (String.Compare(nick, raiz.nickname) == 1)//mayor
            {
                if (raiz.der == null)
                {
                    return(null);
                }
                else
                {
                    return(buscarR(raiz.der, nick));
                }
            }
            else if (String.Compare(nick, raiz.nickname) == -1)//nuevo menor que raiz
            {
                if (raiz.izq == null)
                {
                    return(null);
                }
                else
                {
                    return(buscarR(raiz.izq, nick));
                }
            }
            else if (String.Equals(nick, raiz.nickname))
            {
                return(raiz);
            }

            return(null);
        }
예제 #3
0
파일: ABB.cs 프로젝트: Ebenx/EDD_201504530
 public void escribirNodoJuego(NodoLista actual, NodoABB actualABB, int numero)
 {
     contenido = contenido + "J" + actualABB.nickname + numero.ToString() + "[label=\"oponente: " + actual.oponente +
                 " \nDesplegados: " + actual.desplegados.ToString() + " \nSobrevivientes: " +
                 actual.sobrevivientes.ToString() + "\nDestruidas: " + actual.destruidas.ToString() +
                 " \nGano: " + actual.gano.ToString() + "\"];\n";
 }
예제 #4
0
파일: ABB.cs 프로젝트: Ebenx/EDD_201504530
        public bool eliminar(string nickname)
        {
            NodoABB elemento = buscar(nickname);

            if (elemento != null)                                   //verifica que no esta vacio el nodo
            {
                if (esHoja(elemento))                               //es el ultimo de la rama
                {
                    elemento = null;
                    return(true);
                }
                else
                {                                                   //si no
                    if (elemento.der != null && elemento.izq != null)
                    {
                        elemento = buscarMin(elemento.der);
                        return(true);
                    }
                    else
                    {
                        if (elemento.izq == null)
                        {
                            elemento = elemento.der;
                            return(true);
                        }
                        else
                        {
                            elemento = elemento.izq;
                            return(true);
                        }
                    }
                }
            }
            return(false);
        }
예제 #5
0
파일: ABB.cs 프로젝트: Ebenx/EDD_201504530
 public void inser(NodoABB raiz, NodoABB nuevo)
 {
     if (String.Compare(nuevo.nickname, raiz.nickname) == 1)//mayor
     {
         if (raiz.der == null)
         {
             raiz.der = nuevo;
         }
         else
         {
             inser(raiz.der, nuevo);
         }
     }
     else if (String.Compare(nuevo.nickname, raiz.nickname) == -1)//nuevo menor que raiz
     {
         if (raiz.izq == null)
         {
             raiz.izq = nuevo;
         }
         else
         {
             inser(raiz.izq, nuevo);
         }
     }
 }
예제 #6
0
파일: ABB.cs 프로젝트: Ebenx/EDD_201504530
 public void eliminarNodo(NodoABB nodo, string nickname)
 {
     if (nodo != null)
     {
     }
     else if (String.Compare(nickname, nodo.nickname) == -1)//menor
     {
         eliminarNodo(nodo.izq, nickname);
     }
     else if (String.Compare(nickname, nodo.nickname) == 1) //mayor
     {
         eliminarNodo(nodo.der, nickname);
     }
     else
     {
         NodoABB aux;
         aux = nodo;
         if (aux.izq == null)
         {
             nodo = aux.der;
         }
         else if (aux.der == null)
         {
             nodo = aux.izq;
         }
         else
         {
             reemplazar(aux);
         }
         aux = null;
     }
 }
예제 #7
0
파일: ABB.cs 프로젝트: Ebenx/EDD_201504530
 public bool esHoja(NodoABB nodo)
 {
     if (nodo.der == null & nodo.izq == null)
     {
         return(true);
     }
     return(false);
 }
예제 #8
0
 public NodoHash(NodoABB nodo, int clave)
 {
     this.nickname  = nodo.nickname;
     this.password  = nodo.password;
     this.email     = nodo.email;
     this.conectado = nodo.conectado;
     this.clave     = clave;
 }
예제 #9
0
파일: ABB.cs 프로젝트: Ebenx/EDD_201504530
 public void graficarListaAlrevez(NodoLista ultimoJuego, NodoABB actual, int fin)
 {
     do
     {
         contenido   = contenido + "J" + actual.nickname + fin.ToString() + " -> " + "J" + actual.nickname + (fin - 1).ToString() + ";\n";
         ultimoJuego = ultimoJuego.anterior;
         fin--;
     } while (ultimoJuego.anterior != null);
 }
예제 #10
0
 public void recorrer(NodoABB raiz)
 {
     if (raiz != null)
     {
         recorrer(raiz.izq);
         insertar(raiz);
         recorrer(raiz.der);
     }
 }
예제 #11
0
 public NodoAvl(string nickname, string pass, string email)
 {
     this.nickname = nickname;
     this.pass     = pass;
     this.email    = email;
     usuario       = null;
     izq           = der = null;
     fe            = 0;
 }
예제 #12
0
 public NodoABB(string nickname, string password, string email, int conectado)
 {
     this.nickname  = nickname;
     this.password  = password;
     this.email     = email;
     this.conectado = conectado;
     this.izq       = null;
     this.der       = null;
     this.juegos    = new ListaJuegos();
 }
예제 #13
0
파일: ABB.cs 프로젝트: Ebenx/EDD_201504530
 public string inOrden(NodoABB nodo)
 {
     if (nodo != null)
     {
         return(inOrden(nodo.izq) + "," + nodo.nickname.ToString() + inOrden(nodo.der));
     }
     else
     {
         return("");
     }
 }
예제 #14
0
 public NodoABB crearArbbEspejo(NodoABB actual)
 {
     if (actual != null)
     {
         NodoABB nuevo = new NodoABB(actual.nickname, actual.password, actual.email, actual.conectado);
         actual.izq = crearArbbEspejo(actual.der);
         actual.der = crearArbbEspejo(actual.izq);
         return(nuevo);
     }
     return(null);
 }
예제 #15
0
파일: ABB.cs 프로젝트: Ebenx/EDD_201504530
        public NodoABB buscarMin(NodoABB raiz)
        {
            while (raiz.izq != null)
            {
                raiz = raiz.izq;
            }
            NodoABB aux = raiz;

            raiz = null;
            return(aux);
        }
예제 #16
0
파일: ABB.cs 프로젝트: Ebenx/EDD_201504530
        public void insertarJuego(string nickname, string oponente, int desplegados, int sobrevivientes, int destruidas, int gano)
        {
            NodoABB persona = buscar(nickname);

            if (persona == null)
            {
            }
            else
            {
                persona.juegos.insertar(oponente, desplegados, sobrevivientes, destruidas, gano);
            }
        }
예제 #17
0
파일: ABB.cs 프로젝트: Ebenx/EDD_201504530
        public void insertar(string nickname, string password, string email, int conectado)
        {
            NodoABB nuevo = new NodoABB(nickname, password, email, conectado);

            if (raiz == null)
            {
                raiz = nuevo;
            }
            else
            {
                inser(raiz, nuevo);
            }
        }
예제 #18
0
파일: Avl.cs 프로젝트: Ebenx/EDD_201504530
        public void insertar(NodoABB usuarioExistente)
        {
            NodoAvl nuevo = new NodoAvl(usuarioExistente);

            if (raiz == null)
            {
                raiz = new NodoAvl(usuarioExistente);
                h    = 1;
            }
            else
            {
                raiz = insertarAvl(raiz, nuevo, ref h);
            }
        }
예제 #19
0
        public void insertar(NodoABB nodoNuevo)
        {
            int posicion = direccionModular(nodoNuevo.nickname);

            tabla[posicion] = new NodoHash(nodoNuevo, posicion);
            elementos++;
            factorCarga = elementos / tamanoTabla;

            if (factorCarga > 0.5)
            {
                //copia
                int tam = elementos * 3;
                copiar(tam);
            }
        }
예제 #20
0
파일: ABB.cs 프로젝트: Ebenx/EDD_201504530
 public void graficarRamas(NodoABB actual)
 {
     if (actual != null)
     {
         if (actual.izq != null)
         {
             escribirNodo(actual.izq);
             contenido = contenido + actual.nickname + ":f0 -> " + actual.izq.nickname + ":f1;\n";
             graficarRamas(actual.izq);
         }
         if (actual.der != null)
         {
             escribirNodo(actual.der);
             contenido = contenido + actual.nickname + ":f2 -> " + actual.der.nickname + ":f1;\n";
             graficarRamas(actual.der);
         }
     }
 }
예제 #21
0
        public void insertarABB(NodoABB raiz)
        {
            if (raiz != null)
            {
                vacio = false;
                recorrer(raiz);

                if (factorCarga < 0.3)
                {
                    int tam = elementos * 3;
                    //copiar
                    copiar(tam);
                    //
                }
            }
            //agregar vacio = false
            //verificar si es  null
            //verificar que no sea menor
        }
예제 #22
0
파일: ABB.cs 프로젝트: Ebenx/EDD_201504530
        public void reemplazar(NodoABB actual)
        {
            NodoABB a, p;

            p = actual;
            a = actual.izq;
            while (a.der != null)
            {
                p = a;
                a = a.der;
            }
            actual = a;
            if (p == actual)
            {
                p.izq = a.izq;
            }
            else
            {
                p.der = a.izq;
            }
            actual = a;
        }
예제 #23
0
파일: ABB.cs 프로젝트: Ebenx/EDD_201504530
        public void escribirNodo(NodoABB actual)
        {
            contenido = contenido + actual.nickname + "[label=\"<f0>|<f1>Nickname: " + actual.nickname + " \nPassword: "******" \nEmail: " + actual.email + " \nConectado: " + actual.conectado.ToString() + "|<f2>\"];\n";


            //GRAFICANDO LISTA
            if (actual.juegos != null && actual.juegos.cabeza != null)
            {
                NodoLista aux = actual.juegos.cabeza;
                int       i   = 0;
                escribirNodoJuego(aux, actual, i);
                do
                {
                    escribirNodoJuego(aux.siguiente, actual, i);
                    contenido = contenido + "J" + actual.nickname + i.ToString() + " -> " + "J" + actual.nickname + (i + 1).ToString() + ";\n";
                    aux       = aux.siguiente;
                    i++;
                } while (aux.siguiente != null);
                graficarListaAlrevez(aux, actual, i);
                contenido = contenido + actual.nickname + ":f1 -> " + "J" + actual.nickname + "0;\n";
            }
        }
예제 #24
0
파일: ABB.cs 프로젝트: Ebenx/EDD_201504530
 public void insertarContactoExistente(NodoABB usuario, NodoABB contactoExistenete)
 {
     usuario.avl.insertar(contactoExistenete);
 }
예제 #25
0
파일: ABB.cs 프로젝트: Ebenx/EDD_201504530
 public void insertarContactoNuevo(NodoABB usuario, string nickname, string pass, string email)
 {
     usuario.avl.insertar(nickname, pass, email);
 }
예제 #26
0
파일: ABB.cs 프로젝트: Ebenx/EDD_201504530
        public void elimarPrimerJuego(string nickname)
        {
            NodoABB persona = buscar(nickname);

            persona.juegos.eliminarPrimero();
        }