zoukankan      html  css  js  c++  java
  • 实现一个栈,在基本功能的基础上,可以返回栈中最小值


    import java.util.Stack;

    /**
    * 实现一个栈,在基本功能的基础上,可以返回栈中最小值
    */
    public class GetMinStack {

    public static class MyStack {

    public Stack<Integer> stackData;

    public Stack<Integer> stackMin;

    public MyStack() {
    this.stackData = new Stack<>();
    this.stackMin = new Stack<>();
    }

    public void push(Integer value) {
    if (stackMin.isEmpty()) {
    stackMin.push(value);
    } else if (value <= getMin()) {
    stackMin.push(value);
    } else {
    stackMin.push(getMin());
    }
    stackData.push(value);
    }

    public Integer pop() {
    if (stackData.isEmpty()) {
    System.out.println("the stack is empty");
    return null;
    }
    stackMin.pop();
    return stackData.pop();
    }

    public Integer getMin() {
    if (stackMin.isEmpty()) {
    System.out.println("the stack is empty");
    return null;
    }
    return stackMin.peek();
    }

    }

    public static class MyStack2 {

    public Stack<Integer> stackData;

    public Stack<Integer> stackMin;

    public MyStack2() {
    this.stackData = new Stack<>();
    this.stackMin = new Stack<>();
    }

    public void push(Integer value) {
    if (stackMin.isEmpty()) {
    stackMin.push(value);
    } else if (value <= getMin()) {
    stackMin.push(value);
    }
    stackData.push(value);
    }

    public Integer pop() {
    if (stackData.isEmpty()) {
    System.out.println("the stack is empty");
    return null;
    }
    if (stackData.peek() == getMin()) {
    stackMin.pop();
    }
    return stackData.pop();
    }

    public Integer getMin() {
    if (stackMin.isEmpty()) {
    System.out.println("the stack is empty");
    return null;
    }
    return stackMin.peek();
    }

    }

    }

    /* 如有错误,欢迎批评指正 */
  • 相关阅读:
    测试成功的Python中文文件读写脚本
    Solaris 10上Matlab 7(R14)安装手记
    人生:对心物互作的反应
    破解windows登录密码的有效方法
    Java实现二维码QRCode的编码和解码
    java调用储存过程的方法
    Java多态性的两个特殊情况
    Java中的TCP/UDP网络通信编程
    C语言之详解#ifdef等宏及妙用
    26个Jquery使用小技巧
  • 原文地址:https://www.cnblogs.com/laydown/p/12799227.html
Copyright © 2011-2022 走看看