Example #1
0
        public String Consulta3(ArbolGeneral <Planeta> arbol)
        {
            Cola <ArbolGeneral <Planeta> > q = new Cola <ArbolGeneral <Planeta> >();

            q.encolar(arbol);
            int    nivel   = 0;
            String mensaje = "";

            while (!q.esVacia())
            {
                int elementos = q.cantElementos();
                nivel++;
                int cantidad = 0;
                int total    = 0;
                while (elementos-- > 0)
                {
                    ArbolGeneral <Planeta> nodoActual = q.desencolar();
                    total = total + nodoActual.getDatoRaiz().Poblacion();
                    cantidad++;
                    foreach (ArbolGeneral <Planeta> hijo in nodoActual.getHijos())
                    {
                        q.encolar(hijo);
                    }
                }
                double promedio = total / cantidad;
                mensaje += "\n" + "\n" + "\n" + "Nivel " + nivel + ": " + promedio + "\n";
            }
            return(mensaje);
        }
Example #2
0
        public int nivel(T dato)
        {
            Cola <ArbolGeneral <T> > C = new Cola <ArbolGeneral <T> >();
            ArbolGeneral <T>         auxi;
            int nivel = 0;

            C.encolar(this);
            C.encolar(null);
            while (!C.esVacia())
            {
                auxi = C.desencolar();

                if (dato.Equals(auxi) == true)
                {
                    return(nivel);
                }
                if (auxi == null)
                {
                    nivel++;
                    if (!C.esVacia())
                    {
                        C.encolar(null);
                    }
                }
                else
                {
                    foreach (var hijo in auxi.getHijos())
                    {
                        C.encolar(hijo);
                    }
                }
            }
            return(nivel);
        }
Example #3
0
        public String Consulta2(ArbolGeneral <Planeta> arbol)
        {
            Cola <ArbolGeneral <Planeta> > q = new Cola <ArbolGeneral <Planeta> >();

            q.encolar(arbol);
            int    nivel   = 0;
            String mensaje = "";

            while (!q.esVacia())
            {
                int elementos = q.cantElementos();
                nivel++;
                int cantidadPorNivel = 0;
                while (elementos-- > 0)
                {
                    ArbolGeneral <Planeta> nodoActual = q.desencolar();

                    if (nodoActual.getDatoRaiz().Poblacion() > 10)
                    {
                        cantidadPorNivel++;
                    }
                    foreach (ArbolGeneral <Planeta> hijo in nodoActual.getHijos())
                    {
                        q.encolar(hijo);
                    }
                }
                mensaje += "Nivel " + nivel + ": " + cantidadPorNivel + "\n";
            }
            return(mensaje);
        }
Example #4
0
        public String Consulta3(ArbolGeneral <Planeta> arbol)         //Recorrido por niveles
        {
            Cola <ArbolGeneral <Planeta> > q = new Cola <ArbolGeneral <Planeta> >();

            q.encolar(arbol);
            int    nivel   = 0;
            String mensaje = "";

            while (!q.esVacia())
            {
                int elementos = q.cantElementos();
                nivel++;
                int cantidadPorNivel  = 0;
                int poblacionPorNivel = 0;
                while (elementos-- > 0)
                {
                    ArbolGeneral <Planeta> nodoActual = q.desencolar();
                    cantidadPorNivel++;
                    poblacionPorNivel += nodoActual.getDatoRaiz().Poblacion();
                    foreach (ArbolGeneral <Planeta> hijo in nodoActual.getHijos())
                    {
                        q.encolar(hijo);
                    }
                }
                mensaje += "Nivel " + nivel + ": " + poblacionPorNivel / cantidadPorNivel + "-----";
            }
            return(mensaje);
        }
Example #5
0
        public String Consulta1(ArbolGeneral <Planeta> arbol)         //Recorrido por niveles
        {
            Cola <ArbolGeneral <Planeta> > q = new Cola <ArbolGeneral <Planeta> >();

            q.encolar(arbol);
            int nivel = 0;

            while (!q.esVacia())
            {
                int elementos = q.cantElementos();
                nivel++;
                while (elementos-- > 0)
                {
                    ArbolGeneral <Planeta> nodoActual = q.desencolar();
                    if (nodoActual.getDatoRaiz().EsPlanetaDeLaIA())
                    {
                        nivel--;
                        string texto = nivel.ToString();
                        return("La distancia entre la raiz y el planeta del bot es de: " + texto);
                    }
                    foreach (ArbolGeneral <Planeta> hijo in nodoActual.getHijos())
                    {
                        q.encolar(hijo);
                    }
                }
            }
            return("");
        }
Example #6
0
        public String Consulta3(ArbolGeneral <Planeta> arbol)
        {
            // calcular  promedio poblacion por nivel de arbol (recorrido por niveles, sumar en total y cantidad y dividir por cantidad para sacar promedio)
            Cola <ArbolGeneral <Planeta> > c = new Cola <ArbolGeneral <Planeta> >();
            uint Conta1 = 0;
            uint Conta2 = 0;
            uint Conta3 = 0;
            uint Conta4 = 0;
            uint nivel1 = 0;
            uint nivel2 = 0;
            uint nivel3 = 0;
            uint nivel4 = 0;

            c.encolar(arbol);

            while (!c.esVacia())
            {
                arbol = c.desencolar();
                int conta = arbol.nivel(arbol.getDatoRaiz());
                if (conta == 1)
                {
                    nivel1 += arbol.getDatoRaiz().population;
                    Conta1++;
                }
                else if (conta == 2)
                {
                    nivel2 += arbol.getDatoRaiz().population;
                    Conta2++;
                }
                else if (conta == 3)
                {
                    nivel3 += arbol.getDatoRaiz().population;
                    Conta3++;
                }
                else
                {
                    nivel4 += arbol.getDatoRaiz().population;
                    Conta4++;
                }
                foreach (var hijo in arbol.getHijos())
                {
                    c.encolar(hijo);
                }
            }
            nivel1 /= Conta1;
            nivel2 /= Conta2;
            nivel3 /= Conta3;
            nivel4 /= Conta4;
            return($"\r\n\r\n\r\n\r\n\r\n\r\nPromedio de poblacion segun nivel:\r\n" +
                   $"nivel 1: {nivel1}\r\n" +
                   $"nivel 2: {nivel2}\r\n" +
                   $"nivel 3: {nivel3}\r\n" +
                   $"nivel 4: {nivel4}\r\n");
        }
Example #7
0
        public String Consulta3(ArbolGeneral <Planeta> arbol)
        {
            Cola <ArbolGeneral <Planeta> > c = new Cola <ArbolGeneral <Planeta> >();

            ArbolGeneral <Planeta> arbolaux;

            c.encolar(arbol);

            c.encolar(null);

            int    contarPlanetas             = 0;
            int    nivel                      = 0;
            int    sumarPoblacion             = 0;
            float  promedioPorNivel           = 0;
            string consultaPromedioDePlanetas = "";
            string consulta3                  = "CONSULTA 3:" + "\n";

            while (!c.esVacia())
            {
                arbolaux = c.desencolar();

                if (arbolaux != null)
                {
                    if (arbolaux.getDatoRaiz().Poblacion() > 0)
                    {
                        contarPlanetas++;
                        sumarPoblacion   = sumarPoblacion + arbolaux.getDatoRaiz().Poblacion();
                        promedioPorNivel = sumarPoblacion / contarPlanetas;
                    }
                    foreach (var hijo in arbolaux.getHijos())
                    {
                        c.encolar(hijo);
                    }
                }
                else
                {
                    consultaPromedioDePlanetas += "El promedio poblacional en el nivel " + nivel + " es: " + promedioPorNivel + "\n";
                    contarPlanetas              = 0;
                    nivel++;
                    promedioPorNivel = 0;
                    sumarPoblacion   = 0;
                    if (!c.esVacia())
                    {
                        c.encolar(null);
                    }
                }
            }
            return(consulta3 + consultaPromedioDePlanetas);
        }
Example #8
0
        public String Consulta2(ArbolGeneral <Planeta> arbol)
        {
            Cola <ArbolGeneral <Planeta> > c = new Cola <ArbolGeneral <Planeta> >();
            uint nivel1 = 0;
            uint nivel2 = 0;
            uint nivel3 = 0;
            uint nivel4 = 0;

            c.encolar(arbol);
            while (!c.esVacia())
            {
                arbol = c.desencolar();
                int conta = arbol.nivel(arbol.getDatoRaiz());
                if (arbol.getDatoRaiz().population > 10)
                {
                    if (conta == 1)
                    {
                        nivel1++;
                    }
                    else if (conta == 2)
                    {
                        nivel2++;
                    }
                    else if (conta == 3)
                    {
                        nivel3++;
                    }
                    else
                    {
                        nivel4++;
                    }
                }
                foreach (var hijo in arbol.getHijos())
                {
                    c.encolar(hijo);
                }
            }



            //calcular cantidad de planetas con poblaciĆ³n > 10 en cada nivel del arbol (recorrido por niveles,con limitante de poblaciĆ³n)

            return($"\r\nCantidad de planetas con poblacion mayor a 10 segun nivel:\r\n" +
                   $"nivel 1: {nivel1}\r\n" +
                   $"nivel 2: {nivel2}\r\n" +
                   $"nivel 3: {nivel3}\r\n" +
                   $"nivel 4: {nivel4}\r\n");
        }
Example #9
0
        public String Consulta2(ArbolGeneral <Planeta> arbol)
        {
            Cola <ArbolGeneral <Planeta> > c = new Cola <ArbolGeneral <Planeta> >();

            ArbolGeneral <Planeta> arbolaux;

            c.encolar(arbol);

            c.encolar(null);

            int contarPlanetas = 0;

            int nivel = 0;

            string consultaDePlanetas = "";

            string consulta2 = "CONSULTA 2:" + "\n";

            while (!c.esVacia())
            {
                arbolaux = c.desencolar();

                if (arbolaux != null)
                {
                    if (arbolaux.getDatoRaiz().Poblacion() > 10)
                    {
                        contarPlanetas++;
                    }
                    foreach (var hijo in arbolaux.getHijos())
                    {
                        c.encolar(hijo);
                    }
                }
                else
                {
                    consultaDePlanetas += "La cant de planetas con poblacion mayor a 10 en el nivel " + nivel + " es: " + contarPlanetas + "\n";
                    contarPlanetas      = 0;
                    nivel++;
                    if (!c.esVacia())
                    {
                        c.encolar(null);
                    }
                }
            }
            return(consulta2 + consultaDePlanetas);
        }
Example #10
0
        public String Consulta1(ArbolGeneral <Planeta> arbol)
        {
            Cola <ArbolGeneral <Planeta> > c = new Cola <ArbolGeneral <Planeta> >();

            ArbolGeneral <Planeta> arbolaux;

            c.encolar(arbol);

            c.encolar(null);

            int distancia = 0;

            while (!c.esVacia())
            {
                arbolaux = c.desencolar();


                if (arbolaux != null)
                {
                    if (arbolaux.getDatoRaiz().EsPlanetaDeLaIA())
                    {
                        return("CONSULTA 1:" + "\n" + "La distancia de la raiz al planeta mas cercano de la IA es " + distancia);
                    }
                    else
                    {
                        foreach (var hijo in arbolaux.getHijos())
                        {
                            c.encolar(hijo);
                        }
                    }
                }
                else
                {
                    distancia++;
                    c.encolar(null);
                }
            }
            return("No se encontro ningun planeta");
        }