void ShiftStacks() { if (oldestStack.IsEmpty()) { while (!newestStack.IsEmpty()) { oldestStack.Push(newestStack.Pop()); } } }
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); } }