Задачи
Класс 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