包含min函数的栈

来源:互联网 发布:手机图片加密软件 编辑:程序博客网 时间:2024/05/21 06:31

题目描述:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min、push以及pop的时间复杂度为O(1)

import java.util.Stack;public class Solution {    //数据栈    private Stack<Integer> stackData;    //辅助栈    private Stack<Integer> stackMin;            public Solution(){        stackData=new Stack<Integer>();        stackMin=new Stack<Integer>();    }        //入栈操作    public void push(int node) {        stackData.push(node);        if(stackMin.empty()){            stackMin.push(node);        }else{            if(node<=stackMin.peek()){                stackMin.push(node);            }        }    }    //出栈操作    public void pop() {       int data=stackData.pop();       if(data==stackMin.peek()){           stackMin.pop();       }           }    //返回栈顶的元素    public int top() {        return stackData.peek();    }    //得到栈的最小元素    public int min() {        return stackMin.peek();    }}


原创粉丝点击