包含min函数的栈

定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。

 

public:
/*入栈时,判断存放最小元素的栈是否为空,
入栈元素是否小于存放最小元素栈的栈顶元素*/
    void push(int value) {
        stacktemp.push(value);
        if(minstack.empty() || value<minstack.top())
            minstack.push(value);
    }
/*出栈时,判断出栈元素和最小元素栈的栈顶元素是否值相同*/
    void pop() {
        if(stacktemp.empty())
            return;
        if(stacktemp.top()==minstack.top())
            minstack.pop();
        stacktemp.pop();
    }
    int top() {
        if(!stacktemp.empty())
            return stacktemp.top();
    }
    int min() {
        int minval;
        if(!minstack.empty())
            minval=minstack.top();
        return minval;
    }
};

 

posted on 2015-11-17 23:24  松伯  阅读(240)  评论(0编辑  收藏  举报