• 数据结构之栈的应用(记录最小值)


    记录最小值的栈结构

    导入基本的栈结构的构造函数

    const Stack = require('./Stack')  // 导入基本的栈结构的构造函数
    
    /**
     * @description 创建一个记录有最小值的栈结构的构造函数
     */
    function MinStack() {
    
        // 当push的时候,这两个栈结构都要响应的添加一个值。
        const data_stack = new Stack() // 直接存值
        const min_stack = new Stack() // 判断一下,再存一个小值
    
        this.push = function (val) {
    
            data_stack.push(val)
    
            // 如果min_stack为空的话,直接将val的值push进去即可
            // 如果min_stack栈顶的值大于当前的val,也需要将val得值push进去
            if (min_stack.isEmpty() || val < min_stack.top()) {
                min_stack.push(val)
            } else {
                min_stack.push(min_stack.top())
            }
        }
    
        this.pop = function () {
            data_stack.pop()
            min_stack.pop()
        }
    
        // 获取最小值
        this.minVal = function () {
            return min_stack.top()
        }
    
    }
    
    const own_min_stack = new MinStack()
    
    own_min_stack.push(2)
    own_min_stack.push(3)
    own_min_stack.push(5)
    own_min_stack.push(1)
    
    console.log(own_min_stack.minVal());
    
    
  • 相关阅读:
    HDU 4901 The Romantic Hero
    COGS8 备用交换机
    POJ 1466 Girls and Boys
    bzoj3442 学习小组
    bzoj2054 疯狂的馒头
    POJ2135 Farm Tour
    POJ 1149 PIGS
    Html5 Canvas学习之路(五)
    关于跨域简单总结
    vue-baidu-map 进入页面自动定位的解决方案!
  • 原文地址:https://www.cnblogs.com/guojiabing/p/10990469.html
Copyright © 2020-2023  润新知