zoukankan      html  css  js  c++  java
  • JS数据结构——队列

    创建一个自己的类来表示一个队列

    function Queue() {
        //这里写属性和方法
    }
    

    首先需要一个用于存储队列中元素的数据结构,可以用数组

    let items = []
    

    接下来声明一些队列可用的方法

    • enqueue(element(s)): 向队列尾部添加一个(或多个)新的项
    • dequeue(): 移除队列的第一(即排在队列最前面的)项,并返回被移除的元素
    • front(): 返回队列中第一个元素——最先被添加,也将是最先被移除的元素,队列不做任何变动
    • isEmpty(): 如果队列中不包含任何元素,返回true,否则返回false
    • size(): 返回队列包含的元素个数,与数组的length属性类似
    function Queue() {
      let items = []
      this.enqueue = function(element) {
        items.push(element)
      }
      this.dequeue = function() {
        return items.shift()
      }
      this.front = function() {
        return items[0]
      }
      this.isEmpty = function() {
        return items.length == 0
      }
      this.size = function() {
        return items.length
      }
      this.print = function() {
        console.log(items.toString())
      }
    }
    
    let queue = new Queue()
    console.log(queue.isEmpty())
    
    queue.enqueue("liu")
    queue.enqueue("ke")
    queue.enqueue('yan')
    queue.print()
    console.log(queue.size())
    console.log(queue.isEmpty())
    queue.dequeue()
    queue.dequeue()
    queue.print()
    

    ES6语法封装一个queue类

    let Queue = (function() {
      const  items = new WeakMap()
    
      class Queue {
        constructor() {
          items.set(this, [])
        }
        enqueue(element) {
          let q = items.get(this)
          q.push(element)
        }
        dequeue() {
          let q = items.get(this)
          let r = q.shift()
          return r
        }
        front() {
          return items[0]
        }
        isEmpty() {
          return items.length == 0
        }
        size() {
          return items.length
        }
        print() {
          console.log(items.toString())
        }
      }
      return Queue
    })()
    
    
    今天你学习了吗!!!
  • 相关阅读:
    iframe标签
    Meta标签
    表单相关标签之textarea,select
    marquee标签
    表单相关标签之input标签
    表单相关标签之form标签
    1.7.8- HTML合并单元格
    1.7.7- 表格标题标签
    01- QTP快速入门
    1.7.6- 浏览器审查HTML标签元素
  • 原文地址:https://www.cnblogs.com/nayek/p/12013531.html
Copyright © 2011-2022 走看看