Стек будет пустым, если top == 0
, поэтому вы можете реализовать IsEmpty()
следующим образом:
public bool IsEmpty()
{
return top == 0;
}
Теперь Peek()
не может работать, если стек пуст.Что делать в таком случае, спросите вы?Ответ: Брось исключение:
public int Peek()
{
if (IsEmpty())
throw new InvalidOperationException("You can't Peek() an empty stack");
return array[top-1]; // Topmost element is at 'top - 1'.
}