栈,队列

栈是一种遵从先进后出(LIFO)原则的有序集合

栈的特点是只能在某一端(只有一个口子)添加或删除数据,遵循先进后出的原则,不能随便删除修改,只能删除修改最外层的,要先拿出来再放进去

       插入操作在栈中被称作入栈(push)

  删除操作栈中被称为退栈(pop)

  使用场景                                     

  font------------------------------back   -->进行push/pop操作      只有一端能进行操作

   用js模拟栈

  //
  class Stacj {
    constructor(){
      this.stacj = [];
    }
    push(item) {
      this.stacj.push();
    }
    pop() {
      this.stacj.pop();
    }
    peek() {
      return this.stacj[this.getSize() -1];
    }
    getSize() {
      return this.stacj.length;
    }
    isEmpty() {
      return this.getSize() === 0;
    }
  }

  function isVaild(s) {
    const Map = {
      '{': '}',
      '[': ']',
      '(': ')',
    }
    const myStack = new Stacj()
    for(let item of s) {
      console.log(item, s)
      if(Map[item]) {
        myStack.push(item)
      } else {
        const last = myStack.pop()
        if(item !== Map[last]) return false
      }
    }
    return myStack.getSize() === 0;
  }
 console.log(isVaild('{','}','[',')','{',')'))

 

队列是一种遵从(FIFO)原则的有序集合

队列是一个线性结构,特点是在某一端添加数据,在另一端删除数据,遵循先进先出的原则

  插入(insert)操作也称作入队(enqueue)

  删除(delete)操作也被称为出队(dequeue)

 

posted @ 2020-12-11 15:42  缔造cool  阅读(125)  评论(0编辑  收藏  举报