数据结构之栈的应用(记录最小值)
程序员文章站
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());