定義棧的數據結構,請在該類型中實現一個能夠得到棧最小元素的min函數。
比較簡單,利用兩個棧來實現,一個棧正常存儲數據,另一個棧保存最小值。如果要壓入的數據小于最小棧的棧頂,則壓入數據,否則壓入最小值的棧頂。代碼如下:
class Solution {public: void push(int value) { stackdata.push(value); if(stackmin.empty()) stackmin.push(value); else { if(value<stackmin.top()) stackmin.push(value); else stackmin.push(stackmin.top()); } } void pop() { stackdata.pop(); stackmin.pop(); } int top() { return stackdata.top(); } int min() { return stackmin.top(); }PRivate: stack<int> stackdata; stack<int> stackmin;};新聞熱點
疑難解答