队列
原文链接: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