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++; }
public void Put(double input) { RootPart.Put(input); Average.Put(input); }