求出栈中最小元素

求出栈中最小元素_第1张图片

class N
{
    Stack<Integer> stack = new Stack<Integer>();
    //入栈
    public void push(int node)
    {
        stack.add(node);
    }
    public void pop()
    {
        //删除栈顶
        stack.pop();
    }
    //出栈
    public int top()
    {
        return stack.pop();
    }
    //求出栈中最小值
    public int min()
    {
        //用集合将栈元素输出
        ArrayList<Integer> list = new ArrayList<Integer>();
        //添加到集合
        while(!stack.isEmpty())
        {
            list.add(stack.pop());
        }
        //恢复栈
        //从最后一个元素放
        for(int i = list.size() - 1;i >= 0;i --)
        {
            stack.push(list.get(i));
        }
        //找出最小值 
        int min = list.get(0);
        for(Integer i : list)
        {
            if(i < min)
            {
                min = i;
            }
        }
        return min;
    }
}

你可能感兴趣的:(栈)