定義棧的數據結構,請在該類型中實現一個可以獲得棧中所含最小元素的min函數(時間複雜度應爲O(1))。node
1.定義兩個棧,一個棧用於存儲數據,另外一個棧用於存儲每次數據進棧時棧的最小值.數據結構
2.每次數據進棧時,將此數據和最小值棧的棧頂元素比較,將兩者比較的較小值再次存入最小值棧.函數
4.數據棧出棧,最小值棧也出棧。code
3.這樣最小值棧的棧頂永遠是當前棧的最小值。io
var dataStack = []; var minStack = []; function push(node) { dataStack.push(node); if(minStack.length === 0 || node < min()){ minStack.push(node); }else{ minStack.push(min()); } } function pop() { minStack.pop(); return dataStack.pop(); } function top() { var length = dataStack.length; return length>0&&dataStack[length-1] } function min() { var length = minStack.length; return length>0&&minStack[length-1] }