#c++实现一个可以返回最小值的stack

来自于算法珠玑题库

https://soulmachine.gitbooks.io/algorithm-essentials/content/java/stack-and-queue/stack/min-stack.html

#include 
#include 
using namespace std;

class minstack
{
public:
    void push(int x);
    void pop();
    int top();
    int getmin();

private:
    stack s,minStack;
};

void minstack::pop() {
s.pop();
    minStack.pop();
}
int minstack::top() {
    return s.top();
}
int minstack::getmin() {
    return minStack.top();
}
void minstack::push(int x) {
s.push(x);
    int minvalue=minStack.empty() ? x: min(minStack.top(),x);
    minStack.push(minvalue);
}
int main()
{
    minstack s1;
    s1.push(56);
    s1.push(12);
    s1.push(47);
    cout<

思想是利用一个辅助栈来实现返回最小值的功能。

你可能感兴趣的:(#c++实现一个可以返回最小值的stack)