队列(英语:Queue)Wiki
【队列】
特点
- 是[先进先出](FIFO, First-In-First-Out)的线性表。
- 队列只允许在后端(称为rear)进行插入操作,在前端(称为front)进行删除操作。
api及时间复杂度
api | 作用 | 时间复杂度 |
---|---|---|
enqueue | 增加节点到尾端 | O(1) |
dequeue | 删除并返回队列顶端节点数据 | O(n) |
front | 返回队列顶端数据 | O(1) |
len | 返回队列的长度 | O(1) |
is_empty | 返回队列是否为空 | O(1) |
问题
- 直接删除顶端节点时间复杂度为O(n)
解决
- 不删除顶端节点,将其赋值为None
- 将Queue头尾相连以解决假满队问题
实现
- python: gist link
相关
- 优先队列
推荐阅读
- python全栈开发|进军Python全栈开发--14.Python中的数据结构与算法
- 网络|肝完《浏览器基本原理与实践》后,我总结了这 36 点
- 网络|肝完《浏览器基本原理与实践》的精华分享
- javascript|事件循环、宏任务与微任务、Promise与 Async/Await以及常见面试题
- PHP|使用redis把队列的异步返回改成同步 - 队列使用
- 数据结构|JavaScript数据结构——队列(Queue)
- Java|Java面试突击系列(五)(Redis集群模式)
- 数据结构|数据结构实验三——栈和队列的基本操作
- java|毕业两年,从月薪3500到现在的华为java工程师,我是这样提升自己的技术栈的。