关于前端:什么是队列

41次阅读

共计 844 个字符,预计需要花费 3 分钟才能阅读完成。

队列

原文链接:https://note.noxussj.top/?source=sifo

什么是队列?

队列是一种遵循先进先出准则的有序汇合,增加新元素的一端称为队尾,另一端称为队首。


实现性能

在 JavaScript 中没有队列,然而能够通过 Array 实现队列的所有性能

  • enqueue () 入队
  • dequeue () 出队
  • top () 获取队首值
  • size () 获取队列的元素个数
  • clear () 清空队列

利用场景

  • JavaScript 异步工作中的工作队列
  • 计算最近申请次数

根底案例

通过数组实现

    const queue = []
    queue.push(1) // 入队
    queue.shift() // 出队
    const top = queue[0] // 获取队首值
    const size = queue.length // 获取队列的元素个数
    queue.length = 0 // 清空队列 

通过类模仿实现

    class Queue {constructor() {this.data = {}
            this.count = 0
        }
    
        /**
         * 入队
         */
        enqueue(item) {this.data[this.count++] = item
    
            return item
        }
    
        /**
         * 出队
         */
        dequeue() {if (this.count > 0) {const item = this.data[0]
    
                delete this.data[0]
    
                this.count--
    
                return item
            } else {return -1}
        }
    
        /**
         * 获取队首值
         */
        top() {if (this.count > 0) {return this.data[0]
            } else {return -1}
        }
    
        /**
         * 获取队列的元素个数
         */
        size() {return this.count}
    
        /**
         * 清空队列
         */
        clear() {this.data = {}
            this.count = 0
    
            return {}}
    }
    
    const queue = new Queue()
    
    queue.enqueue('a')
    queue.enqueue('b')

原文链接:https://note.noxussj.top/?source=sifo

正文完
 0