es6实现队列数据结构(基于数组)
发布于 3 年前 作者 fanxiuying 1553 次浏览 来自 分享

1. 代码实现

class Queue {
    constructor() {
        this.list = []
    }
    push(value) {
        this.list.push(value)
    }
    pop() {
        return this.list.shift()
    }
    peek() {
        return this.list[0]
    }
    isEmpty() {
        return this.list.length === 0
    }
    clear() {
        this.list = []
    }
    size() {
        return this.list.length
    }
    toString() {
        return this.list.join(",")
    }
}

2. 示例代码(含测试代码)

代码链接

3. 复杂度

  • 入队:时间、空间复杂度均为O(1)
  • 出队:时间复杂度为O(N)、空间复杂度为O(1)
  • 后面将基于链表实现队列,可优化出队时间复杂度为O(1)

4. 思想

  • 先进先出(FIFO)
  • 先来的,排在前面(比如水在管道里流)

5. 使用场景

  • 同步任务队列

    • 在前面的先执行,执行后,再执行下一个
    • 代码示例

6. 相关文章

7. 欢迎指正

回到顶部