- import java.util.Stack;
/**
* 请设计一个栈,除pop和push方法,还支持min方法,可返回栈元素中的最小值。
* Created by rgl on 2018/10/16.
*/ public class MySatck {
Stack<Integer> s;
Stack<Integer> fuzhu;
public MySatck()
{
s=new Stack<>();
fuzhu=new Stack<>();
}
public void push(int number)
{
s.push(number);
if(fuzhu.isEmpty()==true){
fuzhu.push(number);
}
else
{
int temp=fuzhu.peek();
if(number<temp)
fuzhu.push(number);
else
fuzhu.push(temp);
}
}
public int pop(int i) throws Exception
{
if(s.isEmpty()==true)
throw new Exception("栈空");
else
{
fuzhu.pop();
return s.pop();
}
}
public int min() throws Exception
{
if(fuzhu.isEmpty()==true)
throw new Exception("栈中无元素");
else
return fuzhu.peek();
}
public static void main(String[] args) throws Exception {
MySatck t=new MySatck();
t.push(4);
t.push(8);
t.push(2);
t.push(1);
// t.pop(1);
// t.pop(2);
System.out.println(t.min());
}
}