美文网首页
js栈的操作

js栈的操作

作者: 秘果_li | 来源:发表于2021-05-26 11:43 被阅读0次

js模拟栈操作,输入两个数组,一个数组作为元素入栈顺序,另一个数组为出栈顺序,若出栈顺序符合入栈规则返回true

// 定义一个栈
function Stack () { 
    this.dataStore = []; 
    this.top = 0; 
    this.pop = pop; 
    this.push = push;
    this.peek = peek;   // 获取当前栈顶元素
    this.length = length;
}

function push( element ) {
    this.dataStore[this.top++] = element;
}
function pop() {
    return this.dataStore[--this.top];
}
function length() {
    return this.top;
}
function peek() {
    if( this.top > 0 ) {
      return this.dataStore[this.top-1];
    } 
    else return 'Empty';
}

function main(pushed,poped) {
  const stack = new Stack();
  let popIndex=0;
  pushed.forEach((item,index)=>{
  stack.push(item)
  while(stack.length() && stack.peek() === poped[popIndex]) {
    stack.pop()
    popIndex++;
  }  
})
return stack.top===0 ? true:false;
}
console.log(this.main([1,2,3,4,5],[4,5,3,2,1]));

相关文章

  • js栈的操作

    js模拟栈操作,输入两个数组,一个数组作为元素入栈顺序,另一个数组为出栈顺序,若出栈顺序符合入栈规则返回true

  • js Arrary

    栈方法: js提供了两个方法,来实现类似栈的操作: push()、pop() 栈是一种LIFO(last in f...

  • Javascript中的数据类型

    Javascript中的数据类型 基本数据类型 是对值的操作;放在栈内存里面,栈内存是js代码执行的环境,存放轻量...

  • Flask Vue.js 全栈开发

    Flask Vue.js全栈开发 1. Flask Vue.js全栈开发教程系列 Flask Vue.js全栈开发...

  • 数据结构-栈(stack)和队列

    比如浏览器的上一步,就是栈的概念,后进先出 栈的插入和删除操作 栈的定义 栈的创建 入栈操作 出栈操作 栈的理解 ...

  • 作业帮做-栈结构验证

    顺序栈操作验证 实验目的 掌握栈的顺序存储结构; 验证栈的操作特性; 掌握顺序栈的基本操作实现方法。 实验内容 建...

  • php刷leetCode有效的括号

    此题主要考察栈的操作栈(后进先出(LIFO))所有操作都是通过栈顶部的元素来操作的 解题方法 : 遇上(压栈,遇上...

  • 栈和队列

    顺序栈的基本操作: 链栈的基本操作 顺序队的基本操作 链队的基本操作

  • JS操作属性、JS换肤、JS操作style属性、JS操作clas

    JS操作属性: JS换肤: JS操作style属性: JS操作class: JS中括号操作属性: JS函数: JS...

  • 从数组到栈与队列

    什么是数组,栈,队列? 数组是数据的有序列表。在JS中,数组的每一项可以保存任何类型的数据,且不限制操作。栈是一种...

网友评论

      本文标题:js栈的操作

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