美文网首页
使用JS的类实现一个栈的类 并实现栈里面的常用API

使用JS的类实现一个栈的类 并实现栈里面的常用API

作者: 有希望的活着 | 来源:发表于2020-05-17 16:51 被阅读0次

// 定义一个栈的类 实现栈的push pop getMax getMin等函数 // 并实现先进后出 后进先出 而且能够不断求出 当前栈里面的数据的最大值最小值classStack{constructor(){this.dataStack=[];this.maxStack=[];this.minStack=[];}// 入栈push(item){if(this.minStack.length<=0){this.minStack.push(item)}elseif(item<=this.getMin()){this.minStack.push(item)}if(this.maxStack.length<=0){this.maxStack.push(item)}elseif(item>=this.getMax()){this.maxStack.push(item)}this.dataStack.push(item);}// 出栈pop(){if(this.dataStack.length<=0){return}letvalue=this.dataStack.pop();if(value==this.getMin()){this.minStack.pop()}if(value==this.getMax()){this.maxStack.pop();}returnvalue;}// 求最小值getMin(){if(this.minStack.length<=0){return0;}returnthis.minStack[this.minStack.length-1];}// 求最大值getMax(){if(this.maxStack.length<=0){return0;}returnthis.maxStack[this.maxStack.length-1];}}// 创建栈的对象varstack=newStack();// 调用入栈stack.push(3);stack.push(5);stack.push(10);stack.push(7);stack.push(6);// 调用求最大值 最小值的函数console.log(stack.dataStack);console.log(stack.getMax());console.log(stack.getMin());// 出栈stack.pop();stack.pop();// 出栈后的最大值最小值console.log(stack.getMax());console.log(stack.getMin());console.log(stack.minStack);console.log(stack.maxStack);stack.pop();console.log(stack.getMax());console.log(stack.getMin());console.log(stack.minStack);console.log(stack.maxStack);stack.pop();console.log(stack.getMax());console.log(stack.getMin());console.log(stack.dataStack);console.log(stack.maxStack);stack.pop();console.log(stack.getMax());console.log(stack.getMin());console.log(stack.dataStack);console.log(stack.maxStack);

相关文章

  • 使用JS的类实现一个栈的类 并实现栈里面的常用API

    // 定义一个栈的类 实现栈的push pop getMax getMin等函数 // 并实现先进后出 后进先出 ...

  • Java源码学习1—Stack

    源码版本JDK1.8 I.类文件注释   栈类体现了一个对象后进先出的栈。它继承自Vector类,并实现了5个栈的...

  • 数据结构学习

    栈 先进先出的数据结构 接口api 接口抽象定义 异常类定义 用数组实现栈 用数组实现栈,这种方法存取数据在没有扩...

  • 实现栈_基于数组

    基于动态数组实现栈声明栈的接口 实现类及测试

  • LeetCode题解之化栈为队

    化栈为队 题目描述 实现一个MyQueue类,该类用两个栈来实现一个队列。 示例: 说明: 你只能使用标准的栈操作...

  • 在JS中使用Array实习栈和队列,并封装。

    在JS中使用Array实习栈和队列,并封装。 1.先看一个简单的封装例子 或者这样写 这样就实现了一个简单的类的封...

  • 栈类的实现

    栈:栈是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈...

  • 栈类设计(链表实现)及应用

    题目描述: 模拟STL stack类设计实现你的stack类,该类需具有入栈,出栈,判栈空,取栈顶元素等功能;利...

  • 栈的实现(基于动态数组)

    先定义一个接口 再定义一个栈的实现类,实现上述接口

  • 算法(五):栈

    一、栈(后进先出) JS中没有栈,Array实现栈的所有功能入栈:push出栈:pop // 移除数组最后一项,并...

网友评论

      本文标题:使用JS的类实现一个栈的类 并实现栈里面的常用API

      本文链接:https://www.haomeiwen.com/subject/gpysohtx.html