示例#1
0
 //Eliminar la especie, indicada como parametro, del arbol
 public static bool eliminarRecorrido(ArbolGeneral arbol, string[] especieDatos)
 {
     if (arbol.esHoja())
     {
         if (arbol.Raiz.Dato.Nombre == especieDatos[6])
         {
             Console.WriteLine("Especie [{0}] encontrada.", especieDatos[6]);
             return(true);
         }
         return(false);
     }
     else
     {
         Recorredor recorrerArbol = arbol.Raiz.ListaHijos.Recorredor;
         recorrerArbol.comenzar();
         while (recorrerArbol.esFin() == false)
         {
             if (eliminarRecorrido(recorrerArbol.obtenerElemento(), especieDatos))
             {
                 arbol.eliminarHijo(recorrerArbol.obtenerElemento());
             }
             recorrerArbol.proximo();
         }
         if (arbol.Raiz.ListaHijos.tamanioLista == 0)
         {
             return(true);
         }
         return(false);
     }
 }
示例#2
0
 //Se encargarga de insertar el dominio al arbol
 public static ArbolGeneral insetarDominioArbol(ArbolGeneral arbol, string[] dominio, int nivel)
 {
     if (nivel <= 7)
     {
         arbol.NivelNodo = nivel;
         if (nivel == 7)
         {
             if (arbol.Raiz.ListaHijos.nuevoIncluye(dominio[6]) == -1)
             {
                 arbol.agregarHijo(new ArbolGeneral(dominio[6], solicitarEspecie(dominio[6]))
                 {
                     NivelNodo = nivel
                 });
             }
             ;
         }
         else
         {
             arbol.agregarHijo(new ArbolGeneral(dominio[nivel]));
             Recorredor recorrerArbol = arbol.Raiz.ListaHijos.Recorredor;
             recorrerArbol.comenzar();
             while (!recorrerArbol.esFin())
             {
                 if (dominio[nivel] == (recorrerArbol.obtenerElemento()).Raiz.Dato.Nombre)
                 {
                     insetarDominioArbol(recorrerArbol.obtenerElemento(), dominio, ++nivel);
                 }
                 recorrerArbol.proximo();
             }
         }
     }
     return(arbol);
 }
示例#3
0
 public static bool existeClase(ArbolGeneral enArbol, string enClase)
 {
     if (enArbol.NivelNodo == 3)
     {
         if (enArbol.Raiz.Dato.Nombre == enClase)
         {
             metBuscarEspecieClase(enArbol);
             return(true);
         }
         return(false);
     }
     else
     {
         Recorredor rec = enArbol.Raiz.ListaHijos.Recorredor;
         rec.comenzar();
         while (!rec.esFin())
         {
             if (existeClase(rec.obtenerElemento(), enClase))
             {
                 return(true);
             }
             rec.proximo();
         }
         return(false);
     }
 }
示例#4
0
 public static bool existeEspecie(ArbolGeneral enArbol, string especieBusqueda)
 {
     if (enArbol.esHoja())
     {
         if (enArbol.Raiz.Dato.Nombre == especieBusqueda)
         {
             Console.WriteLine("Especie: {0} " +
                               "\n\tMetabolismo: {1}" +
                               "\n\tReproduccion: {2}",
                               especieBusqueda,
                               ((Especie)enArbol.Raiz.Dato).Dato.Metabolismo,
                               ((Especie)enArbol.Raiz.Dato).Dato.Reproduccion);
             return(true);
         }
         return(false);
     }
     else
     {
         Recorredor rec = enArbol.Raiz.ListaHijos.Recorredor;
         rec.comenzar();
         while (!rec.esFin())
         {
             if (existeEspecie(rec.obtenerElemento(), especieBusqueda))
             {
                 return(true);
             }
             rec.proximo();
         }
         return(false);
     }
 }
示例#5
0
 public static void proCategorias(ArbolGeneral enArbol, int profundidad)
 {
     if (enArbol.esHoja() || enArbol.NivelNodo == profundidad)
     {
         Console.WriteLine("> {0}", enArbol.Raiz.Dato.Nombre);
     }
     else
     {
         Recorredor rec = enArbol.Raiz.ListaHijos.Recorredor;
         rec.comenzar();
         while (!rec.esFin())
         {
             proCategorias(rec.obtenerElemento(), profundidad);
             rec.proximo();
         }
     }
 }
示例#6
0
 public static void metBuscarEspecieClase(ArbolGeneral enArbol)
 {
     if (enArbol.esHoja())
     {
         Console.WriteLine("\n>Especie: ({0})" +
                           "\n\t>Metabolismo: {1}" +
                           "\n\t>Reproduccion: {2}",
                           ((Especie)enArbol.Raiz.Dato).Dato.Metabolismo,
                           ((Especie)enArbol.Raiz.Dato).Dato.Reproduccion);
     }
     else
     {
         Recorredor rec = enArbol.Raiz.ListaHijos.Recorredor;
         rec.comenzar();
         while (!rec.esFin())
         {
             metBuscarEspecieClase(rec.obtenerElemento());
             rec.proximo();
         }
     }
 }