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)

  • 相关阅读:
    leetcode 78. 子集 JAVA
    leetcode 91. 解码方法 JAVA
    leetcode 75. 颜色分类 JAVA
    leetcode 74 搜索二维矩阵 java
    leetcode 84. 柱状图中最大的矩形 JAVA
    last occurance
    first occurance
    classical binary search
    LC.234.Palindrome Linked List
    LC.142. Linked List Cycle II
  • 原文地址:https://www.cnblogs.com/wsm777/p/14120701.html
Copyright © 2011-2022 走看看