[数据结构学习笔记6] 队列(Queue)
队列和堆栈类似,但是它是一种先进先出的结构。FIFO (first in first out)。
代码实现,javascript
class Queue { constructor() { this.items = new LinkedList(); } clear() { this.items = new LinkedList(); } contains(item) { return this.items.contains(item); } peek() { return this.items.head.data; } dequeue() { let removedItem = this.items.head.data; this.items.removeFirst(); return removedItem; } enqueue(item) { this.items.addLast(item); } getLength() { return this.items.length; } }
使用Queue
// create new Queue object let myQ = new Queue(); // add two items myQ.enqueue("Item 1"); myQ.enqueue("Item 2"); // remove item let removedItem = my.dequeue(); // returns Item 1
时间复杂度
行为 | 最佳 | 平均 | 最差 |
Enqueue (Insert) | O(1) | O(1) | O(1) |
Dequeue (Remove) | O(1) | O(1) | O(1) |
Peek | O(1) | O(1) | O(1) |
Search / Contains | O(1) | O(n) | O(n) |
Memory | O(n) | O(n) | O(n) |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战