Для извлечения элемента из стека вызывается открытый метод Pop, приведен ный ниже. // Извлечь символ из стека. public char Pop { if(tos==0) { Console.WriteLine(" - Стек пуст."); return (char) 0; } tos--; return stck[tos]; }
В этом методе сначала проверяется значение переменной tos. Если оно равно нулю, значит, стек пуст. В противном случае значение переменной tos декрементиру ется, и затем из стека возвращается элемент по указанному индексу.
Несмотря на то что для реализации стека достаточно методов Push и Pop, по лезными могут оказаться и другие методы. Поэтому в классе Stack определены еще четыре метода: IsFull, IsEmpty, Capacity и GetNum. Эти методы предо ставляют всю необходимую информацию о состоянии стека и приведены ниже. // Возвратить значение true, если стек заполнен. public bool IsFull { return tos==stck.Length; } // Возвратить значение true, если стек пуст. public bool IsEmpty ( return tos==0; } // Возвратить общую емкость стека. public int Capacity { return stck.Length; } // Возвратить количество объектов, находящихся в данный момент в стеке. public int GetNum { return tos; }
Метод IsFull возвращает логическое значение true, если стек заполнен, а ина че — логическое значение false. Метод IsEmpty возвращает логическое значение true, если стек пуст, а иначе — логическое значение false. Для получения общей ем кости стека (т.е. общего числа элементов, которые могут в нем храниться) достаточно вызвать метод Capacity, а для получения количества элементов, хранящихся в на стоящий момент в стеке, — метод GetNum. Польза этих методов состоит в том, что для получения информации, которую они предоставляют, требуется доступ к закры той переменной tos. Кроме того, они служат наглядными примерами организации безопасного доступа к закрытым членам класса с помощью открытых методов.