欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-07-11 16:15:38
记录最小值的栈结构 导入 "基本的栈结构" 的构造函数 javascript const Stack = require('./Stack') // 导入基本的栈结构的构造函数 / @description 创建一个记录有最小值的栈结构的构造函数 / function MinStack() { // ......

记录最小值的栈结构

导入的构造函数

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