Задачі
Класс MinStack
Класс MinStack
Реализуйте структуру данных стек, которая поддерживает следующие операции:
push n - Занести в стек число n.
pop - Удалить число из стека. Выведите удаленный элемент.
top - Выведите число на вершине стека, не удаляя его.
GetMin - Выведите наименьший элемент находящийся на данный момент в стеке.
size - Выведите размер стека.
Напишите код в соответствии со следующим интерфейсом:
class MyStack // C++
{
private:
stack<int> s, mn; // s - обычный стек, mn - стек минимумов
public:
void push(int x); // Занести x в стек
int pop(void); // Удалить и вернуть верхний элемент стека
int top(void); // Вернуть верхний элемент стека не удаляя его
int GetMin(void); // Вернуть наименьший элемент в стеке
int GetSize(void); // Вернуть размер стека
}
class MyStack // Java
{
private stack<Integer> s, mn; // s - обычный стек, mn - стек минимумов
MyStack() // Конструктор
public void push(int x); // Занести x в стек
public int pop(void); // Удалить и вернуть верхний элемент стека
public int top(void); // Вернуть верхний элемент стека не удаляя его
public int GetMin(void); // Вернуть наименьший элемент в стеке
public int GetSize(void); // Вернуть размер стека
};
Вхідні дані
Каждая строка содержит одну команду.
Вихідні дані
Для каждой команды вывести ответ в отдельной строке.
Приклад
Вхідні дані #1
push 6 push 3 push 12 GetMin pop size GetMin
Вихідні дані #1
3 12 2 3