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

    }

    }

    /* 如有错误,欢迎批评指正 */
  • 相关阅读:
    k-近邻算法
    配置nginx 高并发 php
    ubuntu上安装mysql 编译安装
    Webpack探索【1】--- 基础知识
    【JavaScript专题】--- 立即执行函数表达式
    Eslint使用指南
    Maven学习笔记【2】 -- 安装和配置
    Maven学习笔记【1】 -- Maven简介
    Git中如何将代码恢复到之前某个节点
    密码硬编码(Password Management: Hardcoded Password)
  • 原文地址:https://www.cnblogs.com/laydown/p/12799227.html
Copyright © 2011-2022 走看看