题目描述:定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数
package 栈最小元素;
import java.util.ArrayDeque;
public class MinInStack extends ArrayDeque{
private static MinInStack m_data;
private static MinInStack m_min;
public static void main(String[] args) {
m_data = new MinInStack();
m_min = new MinInStack();
myPush(3);
myPush(4);
myPush(2);
myPush(1);
myPop();
myPop();
myPush(0);
System.out.println(m_min);
System.out.println(m_data);
System.out.println(m_min.min());
}
public static void myPush(int value){
m_data.addLast(value);
if(m_min.size() == 0 || value < (int)m_min.peekLast()){
m_min.addLast(value);
}
else{
m_min.addLast(m_min.peekLast());
}
}
public static void myPop(){
if(m_data.size() > 0 && m_min.size() > 0){
m_data.pollLast();
m_min.pollLast();
}
}
public static int min(){
if(m_data.size() > 0 && m_min.size() > 0){
return (int) m_min.peekLast();
}
return 0;
}
}