es6实现队列数据结构(基于数组)
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. 相关文章
- 上一篇:es6实现栈结构(含复杂度)
- 下一篇:实现优先级队列(暂未更新)