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();
    }

    }

    }

    /* 如有错误,欢迎批评指正 */
  • 相关阅读:
    演示Eclipse插件实现代码提示和补全
    重拾《 两周自制脚本语言 》- Eclipse插件实现语法高亮
    Kindle Windows版本 中文字体修改工具
    MD5加密算法原理及实现
    Spring boot 发送邮件示例
    ubuntu下svn的命令使用
    数据库的分区、分表、分库、分片的简介
    Vue 入门之目录结构介绍
    MQTT简单介绍与实现
    SVN使用规范
  • 原文地址:https://www.cnblogs.com/laydown/p/12799227.html
Copyright © 2011-2022 走看看