コード例 #1
0
ファイル: ABB.cs プロジェクト: ChristianR007/EDD_201504444
 private bool InsertarR(NodoABB raizSig, NodoABB nuevo)
 {
     if (nuevo.nickname.CompareTo(raizSig.nickname) < 0)//&& convertir(nuevo.nickname) < convertir(raizSig.nickname))
     {
         if (raizSig.izq == null)
         {
             raizSig.izq = nuevo;
             return(true);
         }
         else
         {
             return(InsertarR(raizSig.izq, nuevo));
         }
     }
     else
     {
         if (raizSig.der == null)
         {
             raizSig.der = nuevo;
             return(true);
         }
         else
         {
             return(InsertarR(raizSig.der, nuevo));
         }
     }
 }
コード例 #2
0
ファイル: ABB.cs プロジェクト: ThyThal/Virus-Attack
 public void EliminarElem(ref NodoABB raiz, Virus x)
 {
     if (raiz != null)
     {
         if (raiz.info == x && (raiz.hijoIzq == null) && (raiz.hijoDer == null))
         {
             raiz = null;
         }
         else if (raiz.info == x && raiz.hijoIzq != null)
         {
             raiz.info = this.mayor(raiz.hijoIzq);
             EliminarElem(ref raiz.hijoIzq, raiz.info);
         }
         else if (raiz.info == x && raiz.hijoIzq == null)
         {
             raiz.info = this.menor(raiz.hijoDer);
             EliminarElem(ref raiz.hijoDer, raiz.info);
         }
         else if (raiz.info.hierarchy < x.hierarchy)
         {
             EliminarElem(ref raiz.hijoDer, x);
         }
         else
         {
             EliminarElem(ref raiz.hijoIzq, x);
         }
     }
 }
コード例 #3
0
ファイル: ABB.cs プロジェクト: ChristianR007/EDD_201504444
    // --------------------------------------------------------------------------------------------------------------------------------------------------------------
    public string espejo()
    {
        NodoABB nuevaRaizEspejo = raiz;

        espejoR(nuevaRaizEspejo);
        return(dotArbolR(nuevaRaizEspejo));;
    }
コード例 #4
0
ファイル: ABB.cs プロジェクト: ChristianR007/EDD_201504444
    public string dotArbol()
    {
        clu  = 0;
        clu2 = 1000;
        NodoABB aux = raiz;

        return(dotArbolR(aux));
    }
コード例 #5
0
ファイル: ABB.cs プロジェクト: ChristianR007/EDD_201504444
 private string postordenR(NodoABB reco)
 {
     if (reco != null)
     {
         postordenR(reco.izq);
         postordenR(reco.der);
         cuerpoPost += reco.nickname + " - ";
     }
     return(cuerpoPost);
 }
コード例 #6
0
ファイル: ABB.cs プロジェクト: ChristianR007/EDD_201504444
 private string enordenR(NodoABB reco)
 {
     if (reco != null)
     {
         enordenR(reco.izq);
         cuerpoEnorden += reco.nickname + " - ";
         enordenR(reco.der);
     }
     return(cuerpoEnorden);
 }
コード例 #7
0
ファイル: ABB.cs プロジェクト: ChristianR007/EDD_201504444
    public string eliminarContactos(string nick, string ContactoAEliminar)
    {
        NodoABB nodoUsuario = RetornarNodoDeABB(raiz, nick);

        if (nodoUsuario != null)
        {
            nodoUsuario.sigAVL.Eliminar(nodoUsuario.sigAVL, ContactoAEliminar);
            return("si");
        }
        return("no");
    }
コード例 #8
0
ファイル: ABB.cs プロジェクト: ChristianR007/EDD_201504444
    public string modificarContactos(string nick, string ContactoActual, string pass, string correo)
    {
        NodoABB nodoUsuario = RetornarNodoDeABB(raiz, nick);

        if (nodoUsuario != null)
        {
            nodoUsuario.sigAVL.modificar(nodoUsuario.sigAVL, ContactoActual, pass, correo);
            return("si");
        }
        return("no");
    }
コード例 #9
0
ファイル: ABB.cs プロジェクト: ChristianR007/EDD_201504444
    public string eliminarJuego(string nick, string jugadorAEliminar)
    {
        NodoABB nodoUsuario = RetornarNodoDeABB(raiz, nick);

        if (nodoUsuario != null)
        {
            nodoUsuario.sigLd.eliminar(nodoUsuario.sigLd, jugadorAEliminar);
            return("si");
        }
        return("no");
    }
コード例 #10
0
ファイル: ABB.cs プロジェクト: ThyThal/Virus-Attack
 public Virus menor(NodoABB a)
 {
     if (a.hijoIzq == null)
     {
         return(a.info);
     }
     else
     {
         return(menor(a.hijoIzq));
     }
 }
コード例 #11
0
ファイル: ABB.cs プロジェクト: ThyThal/Virus-Attack
 public Virus mayor(NodoABB a)
 {
     if (a.hijoDer == null)
     {
         return(a.info);
     }
     else
     {
         return(mayor(a.hijoDer));
     }
 }
コード例 #12
0
ファイル: ABB.cs プロジェクト: ChristianR007/EDD_201504444
    public string modificarJuego(string nick, string jugadorViejo, string jugadorNuevo, string uDesplegables, string uSobrevivientes, string uDestruidas, string Gano)
    {
        NodoABB nodoUsuario = RetornarNodoDeABB(raiz, nick);

        if (nodoUsuario != null)
        {
            nodoUsuario.sigLd.modificar(nodoUsuario.sigLd, jugadorViejo, jugadorNuevo, uDesplegables, uSobrevivientes, uDestruidas, Gano);
            return("si");
        }
        return("no");
    }
コード例 #13
0
ファイル: ABB.cs プロジェクト: ChristianR007/EDD_201504444
    private string preordenR(NodoABB reco)
    {
        if (reco != null)
        {
            cuerpoPre += reco.nickname + " - ";
            preordenR(reco.izq);
            preordenR(reco.der);
        }

        return(cuerpoPre);
    }
コード例 #14
0
ファイル: ABB.cs プロジェクト: ChristianR007/EDD_201504444
    public bool verificarABB(string nick)
    {
        NodoABB aux = RetornarNodoDeABB(raiz, nick);

        if (aux != null)
        {
            return(true); // Es porque si lo encontro
        }
        else
        {
            return(false); // Si es null es porque no hay nada
        }
    }
コード例 #15
0
ファイル: ABB.cs プロジェクト: ChristianR007/EDD_201504444
    public string verificarABBRetornaPass(string nick)
    {
        NodoABB aux = RetornarNodoDeABB(raiz, nick);

        if (aux != null)
        {
            return(aux.pass); // Es porque si lo encontro
        }
        else
        {
            return("x"); // Si es null es porque no hay nada
        }
    }
コード例 #16
0
ファイル: ABB.cs プロジェクト: ChristianR007/EDD_201504444
 private int alturaR(NodoABB actual)
 {
     if (actual == null)
     {
         return(0);
     }
     else
     {
         int hi = alturaR(actual.izq);
         int hd = alturaR(actual.der);
         return((hi > hd ? hi : hd) + 1);
     }
 }
コード例 #17
0
ファイル: ABB.cs プロジェクト: ChristianR007/EDD_201504444
    // -----------------------------------------------------------------------------------------------------------------------------------------INSERTAR CONTACTOS
    //[0]Usuario padre, [1]Nickname, [2]ContraseNa, [3]correo electronico
    public string InsertarContactos(string nick, string nickContacto, string pass, string correo)
    {
        NodoABB aux = RetornarNodoDeABB(raiz, nick);

        if (aux != null)
        {
            if (aux.nickname == nick)
            {
                aux.sigAVL.InsertarAVL(aux.sigAVL, nickContacto, pass, correo);
                return("si");
            }
        }
        return("no");
    }
コード例 #18
0
ファイル: ABB.cs プロジェクト: ChristianR007/EDD_201504444
    // ---------------------------------------------------------------------------------------------------------------------------------------INSERTAR JUGADORES
    //Usuario Base,Oponente,unidades desplegadas,unidades sobrevivientes,Unidades Destruidas,"Gano (1 si, 0 no)"
    public string InsertarJuegos(string nick, string jugador, string uDesplegables, string uSobrevivientes, string uDestruidas, string Gano)
    {
        NodoABB aux = RetornarNodoDeABB(raiz, nick);

        if (aux != null)
        {
            if (aux.nickname == nick)
            {
                aux.sigLd.Insertar(aux.sigLd, jugador, uDesplegables, uSobrevivientes, uDestruidas, Gano);
                return("si");
            }
        }
        return("no");
    }
コード例 #19
0
ファイル: ABB.cs プロジェクト: ChristianR007/EDD_201504444
    private NodoABB RetornarNodoDeABB(NodoABB jj, string nickn) // Retorna el nodo del ABB que estoy buscando
    {
        if (jj != null)
        {
            if (jj.nickname == nickn)
            {
                tmp = jj;
            }
            RetornarNodoDeABB(jj.izq, nickn);
            RetornarNodoDeABB(jj.der, nickn);
        }

        return(tmp);
    }
コード例 #20
0
ファイル: ABB.cs プロジェクト: ChristianR007/EDD_201504444
        public bool Insertar(string nombre)
        {
            NodoABB nuevo = new NodoABB();

            nuevo.nickname = nombre;
            if (raiz == null)
            {
                raiz = nuevo;
                return(true);
            }
            else
            {
                return(InsertarR(raiz, nuevo));
            }
        }
コード例 #21
0
ファイル: ABB.cs プロジェクト: ChristianR007/EDD_201504444
 private int buscarUsuR(NodoABB rec, string nombre)
 {
     if (rec != null)
     {
         if (rec.nickname == nombre)
         {
             return(verificacion2++);
         }
         else
         {
             buscarUsuR(rec.izq, nombre);
             buscarUsuR(rec.der, nombre);
         }
     }
     return(verificacion2);
 }
コード例 #22
0
ファイル: ABB.cs プロジェクト: ThyThal/Virus-Attack
 public void AgregarElem(ref NodoABB raiz, Virus x)
 {
     if (raiz == null)
     {
         raiz      = new NodoABB();
         raiz.info = x;
     }
     else if (raiz.info.hierarchy > x.hierarchy)
     {
         AgregarElem(ref raiz.hijoIzq, x);
     }
     else if (raiz.info.hierarchy < x.hierarchy)
     {
         AgregarElem(ref raiz.hijoDer, x);
     }
 }
コード例 #23
0
ファイル: ABB.cs プロジェクト: ChristianR007/EDD_201504444
    private void espejoR(NodoABB actual)
    {
        if (actual == null)
        {
            return;
        }
        else
        {
            NodoABB tmp;
            espejoR(actual.izq);
            espejoR(actual.der);

            tmp        = actual.izq;
            actual.izq = actual.der;
            actual.der = tmp;
        }
    }
コード例 #24
0
ファイル: ABB.cs プロジェクト: ChristianR007/EDD_201504444
 private int ramasR(NodoABB actual)
 {
     if (actual == null)
     {
         return(0);
     }
     else
     {
         if ((actual.izq != null) || (actual.der != null))
         {
             return(ramasR(actual.der) + ramasR(actual.izq) + 1);
         }
         else
         {
             return(0);
         }
     }
 }
コード例 #25
0
ファイル: ABB.cs プロジェクト: ChristianR007/EDD_201504444
 private int hojasR(NodoABB actual)
 {
     if (actual == null)
     {
         return(0);
     }
     else
     {
         if ((actual.izq == null) && (actual.der == null))
         {
             return(1);
         }
         else
         {
             return(hojasR(actual.izq) + hojasR(actual.der));
         }
     }
 }
コード例 #26
0
ファイル: ABB.cs プロジェクト: ChristianR007/EDD_201504444
 private void modificarR(NodoABB rec, string nick, string nuevoNombre, string nuevaPass, string nuevoCorreo, string nuevoConec)
 {
     if (rec != null)
     {
         if (rec.nickname == nick)
         {
             rec.nickname  = "";
             rec.nickname  = nuevoNombre;
             rec.pass      = nuevaPass;
             rec.correo    = nuevoCorreo;
             rec.conectado = nuevoConec;
         }
         else
         {
             modificarR(rec.izq, nick, nuevoNombre, nuevaPass, nuevoCorreo, nuevoConec);
             modificarR(rec.der, nick, nuevoNombre, nuevaPass, nuevoCorreo, nuevoConec);
         }
     }
 }
コード例 #27
0
ファイル: ABB.cs プロジェクト: ChristianR007/EDD_201504444
 private int buscarUsuarioR(NodoABB rec, string nombre, string pass)
 {
     if (rec != null)
     {
         if ((rec.nickname == nombre) && (rec.pass == pass))
         {
             return(verificacion++);
         }
         else
         {
             buscarUsuarioR(rec.izq, nombre, pass);
             buscarUsuarioR(rec.der, nombre, pass);
         }
     }
     else
     {
         return(0);
     }
     return(verificacion);
 }
コード例 #28
0
ファイル: ABB.cs プロジェクト: ChristianR007/EDD_201504444
    private NodoABB reemplazar(NodoABB act)
    {
        NodoABB a, p;

        p = act;
        a = act.izq;
        while (a.der != null)
        {
            p = a;
            a = a.der;
        }
        act.nickname = a.nickname;
        if (p == act)
        {
            p.izq = a.izq;
        }
        else
        {
            p.der = a.izq;
        }
        return(a);
    }
コード例 #29
0
ファイル: ABB.cs プロジェクト: ChristianR007/EDD_201504444
    private string dotArbolR(NodoABB actual)
    {
        if (actual == null)
        {
            return("");
        }
        else
        {
            string cadena = "";
            cadena += "\"Nickname: " + actual.nickname + "\nContraseña: " + actual.pass + "\nCorreo: " + actual.correo + "\nConectado: " + actual.conectado + "\"[style=filled; color= lightgray;];\n";
            if (!string.IsNullOrEmpty(actual.sigLd.mostrar(actual.sigLd)))
            {
                cadena += "\"Nickname: " + actual.nickname + "\nContraseña: " + actual.pass + "\nCorreo: " + actual.correo + "\nConectado: " + actual.conectado + "\"->";
                cadena += actual.sigLd.mostrar(actual.sigLd) + "\n";
                cadena += "subgraph cluster_" + clu + "  {style=filled;color=Blue;\n" + actual.sigLd.sub(actual.sigLd) + "}";
                clu++;
            }
            if (!string.IsNullOrEmpty(actual.sigAVL.mostrarDot(actual.sigAVL)))
            {
                cadena += "\"Nickname: " + actual.nickname + "\nContraseña: " + actual.pass + "\nCorreo: " + actual.correo + "\nConectado: " + actual.conectado + "\"->";
                cadena += actual.sigAVL.mostrarDot(actual.sigAVL) + "\n";
                cadena += "subgraph cluster_" + clu2 + "  {style=filled;color=Green;\n" + actual.sigAVL.mostrarsub(actual.sigAVL) + "}";
                clu2++;
            }

            if (actual.izq != null)
            {
                cadena += "\"Nickname: " + actual.nickname + "\nContraseña: " + actual.pass + "\nCorreo: " + actual.correo + "\nConectado: " + actual.conectado + "\" -> \"Nickname: " + actual.izq.nickname + "\nContraseña: " + actual.izq.pass + "\nCorreo: " + actual.izq.correo + "\nConectado: " + actual.izq.conectado + "\";\n";
                cadena += dotArbolR(actual.izq);
            }

            if (actual.der != null)
            {
                cadena += "\"Nickname: " + actual.nickname + "\nContraseña: " + actual.pass + "\nCorreo: " + actual.correo + "\nConectado: " + actual.conectado + "\" -> \"Nickname: " + actual.der.nickname + "\nContraseña: " + actual.der.pass + "\nCorreo: " + actual.der.correo + "\nConectado: " + actual.der.conectado + "\";\n";
                cadena += dotArbolR(actual.der);
            }
            return(cadena);
        }
    }
コード例 #30
0
ファイル: ABB.cs プロジェクト: ChristianR007/EDD_201504444
 private NodoABB eliminarR(NodoABB raizSub, string nombre)
 {
     if (raizSub == null)
     {
         // No se pudo eliminar, no se encontro
     }
     else if (nombre.CompareTo(raizSub.nickname) < 0)
     {
         NodoABB iz;
         iz          = eliminarR(raizSub.izq, nombre);
         raizSub.izq = iz;
     }
     else if (nombre.CompareTo(raizSub.nickname) > 0)
     {
         NodoABB de;
         de          = eliminarR(raizSub.der, nombre);
         raizSub.der = de;
     }
     else
     {
         NodoABB q;
         q = raizSub;
         if (q.izq == null)
         {
             raizSub = q.der;
         }
         else if (q.der == null)
         {
             raizSub = q.der;
         }
         else
         {
             q = reemplazar(q);
         }
         q = null;
     }
     return(raizSub);
 }