Ejemplo n.º 1
0
            public void Put(double x)
            {
                Data.Enqueue(x);
                DataAcc.Put(x);


                // защита от неограниченного роста
                if (Data.Count > Length)
                {
                    Data.Dequeue();
                }

                // когда заполнен кусок
                if (Counter > 0 && Counter % (Length / (Divisions)) == 0)
                {
                    var minorAvgInput = DataAcc.Get();
                    // есть следующий уровень
                    if (NextPart != null)
                    {
                        // заталкиваем среднее в следующий уровень
                        NextPart.Put(minorAvgInput);
                    }
                }

                if (Counter >= Length)
                {
                    Counter = 0;
                }
                Counter++;
            }
Ejemplo n.º 2
0
 public void Put(double input)
 {
     RootPart.Put(input);
     Average.Put(input);
 }