zoukankan      html  css  js  c++  java
  • 栈,队列

    栈是一种遵从先进后出(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)

  • 相关阅读:
    UVa
    UVa 1630
    P3891 [GDOI2014]采集资源
    一个非常naive的小学数学魔术证明题
    P2831 [NOIP2016 提高组] 愤怒的小鸟
    P4211 [LNOI2014]LCA
    P4137 Rmq Problem / mex 强制在线做法
    P2272 [ZJOI2007]最大半连通子图
    P5664 [CSP-S2019] Emiya 家今天的饭
    盘点linux操作系统中的10条性能调优命令,一文搞懂Linux系统调优
  • 原文地址:https://www.cnblogs.com/wsm777/p/14120701.html
Copyright © 2011-2022 走看看