void ShiftStacks()
 {
     if (oldestStack.IsEmpty())
     {
         while (!newestStack.IsEmpty())
         {
             oldestStack.Push(newestStack.Pop());
         }
     }
 }
Exemplo n.º 2
0
        public void Push(int item)
        {
            if (!sortedStack.IsEmpty() && item > sortedStack.Peek())
            {
                while (!sortedStack.IsEmpty() && item > sortedStack.Peek())
                {
                    bufferStack.Push(sortedStack.Pop());
                }

                sortedStack.Push(item);

                while (!bufferStack.IsEmpty())
                {
                    sortedStack.Push(bufferStack.Pop());
                }
            }
            else
            {
                sortedStack.Push(item);
            }
        }