Esempio n. 1
0
 //Constructor
 public PseudoFractal()
 {
     //Instance ID
     ID = count++;
     //Variable
     num = 1;
     //Por defecto, el objeto no contiene instancias internas.
     inner = null;
     //Guardar el HashCode
     Hash = GetHashCode();
     //Guardar el Memory Address
     Address = MemoryAddress();
 }
Esempio n. 2
0
        //Método para calcular la suma de toda la estructura recursiva.
        public int TotalSum(int res, PseudoFractal instance)
        {
            //Caso base
            //Si es null, la instancia ya no contiene más instancias
            if (instance.inner == null)
            {
                return(res += instance.num);
            }
            else
            {
                //Sumamos el num de la instancia
                res += instance.num;

                //Pasamos la instancia interna a la próxima llamada recursiva
                PseudoFractal iteration = instance.inner;
                return(TotalSum(res, iteration));
            }
        }
        //Función recursiva para construir objetos pseudofractales a profundidad n.
        private PseudoFractal RecursiveBuild(int n, PseudoFractal instance)
        {
            if (n == 1)
            {
                return(instance);
            }
            else
            {
                //Creamos un objeto en cada iteración
                PseudoFractal iteration = new PseudoFractal();

                //Llamada recursiva.
                //Asociamos recursivamente cada objeto al de la iteración anterior
                //El resultado es un conjunto de objetos con referencias al siguiente
                //Se puede imaginar como anidados uno dentro del otro.
                instance.inner = RecursiveBuild(n - 1, iteration);
            }

            return(instance);
        }