Skip to content

Latest commit

 

History

History
70 lines (50 loc) · 2.04 KB

数据结构 — 队列.md

File metadata and controls

70 lines (50 loc) · 2.04 KB

数据结构 — 队列

队列(Queue)是一种线性数据结构,其行为类似于现实世界的队列。它遵循先进先出(FIFO)的操作顺序,类似于现实世界的对应物。这意味着将新项目添加到队列的末尾,而从队列的开头删除项目。

JavaScript 队列可视化

队列数据结构的主要操作有:

  • enqueue:将元素添加到队列末尾
  • dequeue:从队列的开头移除元素
  • peek:检索队列开头的元素,而不删除它
  • isEmpty:检查队列是否为空

JavaScript 实现

class Queue {
  constructor() {
    this.items = []
  }

  enqueue(item) {
    this.items.push(item)
  }

  dequeue(item) {
    return this.items.shift()
  }

  peek(item) {
    return this.items[0]
  }

  isEmpty() {
    return this.items.length === 0
  }
}
  • 使用 constructor 创建一个类(class),为每个实例初始化空数组 items
  • 定义一个 enqueue() 方法,使用 Array.prototype.push() 将元素添加到 items 数组的末尾。
  • 定义一个 dequeue() 方法,使用 Array.prototype.shift()items 数组的开头删除元素。
  • 定义一个 peek() 方法,检索 items 数组中第一个元素的值,而不删除它。
  • 定义一个 isEmpty() 方法,使用 Array.prototype.length 判断 items 数组是否为空。
const queue = new Queue()

queue.isEmpty() // true

queue.enqueue('A')
queue.enqueue('B')
queue.enqueue('C')
queue.enqueue('D')
queue.enqueue('E')

queue.isEmpty() // false

queue.peek() // 'A'

queue.dequeue() // 'A'
queue.dequeue() // 'B'
queue.dequeue() // 'C'

以上内容来自 30 seconds of code 的 JavaScript Data Structures - Queue

更多资料

Queue