java基础编程——获取栈中的最小元素

题目描述

定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
 

题目代码

/**
 * Created by YuKai Fan on 2018/9/5.
 */
public class MinStack{
    Stack<Integer> dataStack = new Stack<>();
    Stack<Integer> minStack = new Stack<>();
    public static void main(String[] args) {
        MinStack  minstack = new MinStack();
        minstack.push(5);
        minstack.push(7);
        minstack.push(3);
        minstack.push(4);
        /*System.out.println(minstack.pop());
        System.out.println(minstack.pop());*/
        System.out.println("min="+minstack.min());
    }
    public void push(int num) {
        dataStack.push(num);
        if (minStack.isEmpty() || num < minStack.peek()) {
            minStack.push(num);
        } else {
            minStack.push(minStack.peek());
        }
    }
    public void pop() {
        dataStack.pop();
        minStack.pop();
    }
    public int top() {
        return dataStack.peek();
    }
    public int min() {
        return minStack.peek();
    }

}

 

posted @ 2018-09-05 19:55  MichaelKai  阅读(989)  评论(0编辑  收藏  举报