コード例 #1
0
 public static void Resuelve <T1>(Arbol <T1> arbolActual, Arbol <T1> padre, Condicion <T1> condicion)
 {
     if (arbolActual.Hijos.Count() > 0)
     {
         foreach (var hijo in arbolActual.Hijos)
         {
             Resuelve(hijo, arbolActual, condicion);
         }
     }
     if (arbolActual.Hijos.Count() == 0 && !condicion(arbolActual.Valor))
     {
         padre.EliminaHijo(arbolActual);
     }
     else if (arbolActual.Hijos.Count() > 0 && !condicion(arbolActual.Valor))
     {
         foreach (var hijo in arbolActual.Hijos)
         {
             padre.InsertaHijo(hijo, arbolActual);
         }
         padre.EliminaHijo(arbolActual);
     }
 }
コード例 #2
0
        public static void Simplifica <T1>(Arbol <T1> arbolActual, Arbol <T1> padre, Condicion <T1> condicion)
        {
            foreach (var hijo in arbolActual.Hijos)
            {
                Simplifica(hijo, arbolActual, condicion);
            }

            if (!condicion(arbolActual.Valor))
            {
                foreach (var hijo in arbolActual.Hijos)
                {
                    padre.InsertaHijo(hijo, arbolActual);
                }
                padre.EliminaHijo(arbolActual);
            }
        }