美文网首页前端大杂烩
数据结构 — 队列

数据结构 — 队列

作者: lio_zero | 来源:发表于2022-05-29 10:47 被阅读0次

    队列(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

    相关文章

      网友评论

        本文标题:数据结构 — 队列

        本文链接:https://www.haomeiwen.com/subject/ctyiprtx.html