public void PushBottom(Task t)
        {
            int oldBottom = bottom;
            int oldTop    = top;
            int size      = oldBottom - oldTop;

            if (size >= tasks.Capacity - 1)
            {
                tasks = tasks.Resize(oldBottom, oldTop);
            }
            tasks.Put(oldBottom, t);
            bottom = oldBottom + 1;
        }
コード例 #2
0
ファイル: 2_UnboundDEQueue.cs プロジェクト: Roxter/Vtornik
        public void PushBottom(Task t)
        {
            int oldBottom = bottom;                      //запоминаем нижний индекс
            int oldTop    = top;                         //запоминаем верхний индекс
            int size      = oldBottom - oldTop;          //вычисляем разницу между верхним индексом и нижним

            if (size >= tasks.Capacity - 1)              //если она больше, чем вмсетимость - 1
            {
                tasks = tasks.Resize(oldBottom, oldTop); //меняем размер циклического массива
            }
            tasks.Put(oldBottom, t);                     //кладем задачу в конец очереди
            bottom = oldBottom + 1;                      //двигаем нижний индекс
        }