天天看點

包含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;
    }
};      

繼續閱讀