1 class MinStack { 2 public: 3 MinStack() { 4 // do initialization if necessary 5 } 6 7 void push(int number) { 8 // write your code here 9 if (minimum.empty() || number <= minimum.top())10 minimum.push(number);11 data.push(number);12 }13 14 int pop() {15 // write your code here16 if (minimum.top() == data.top())17 minimum.pop();18 int elem = data.top();19 data.pop();20 return elem;21 }22 23 int min() {24 // write your code here25 return minimum.top();26 }27 private:28 stack data;29 stack minimum;30 };