JavaScript 循环双端队列
本文最后更新于 2025年1月2日 晚上
基于内存预装载的循环双端队列,部署在 Node.js 环境。
Github Repo | npm package
Language: en | zh-cn
License: MIT license
原理
将队列以循环方式存储,维护队首及队尾指针。
队列空间不足时,将空间装载到原来的 $1.75$ 倍,并拷贝队列。
使用方法
安装和导入模块
1 |
|
1 |
|
创建对象 | constructor()
1 |
|
方法 #1:不预分配长度。
方法 #2:根据程序需要预分配 $\text{length}$ 的长度。
获取队首/队尾元素 | front()
& back()
1 |
|
时间复杂度:$O(1)$。
从队首/队尾插入元素 | push_front()
& push_back()
1 |
|
时间复杂度:大多数 $O(1)$,最坏 $O(\text{length})$ (需要扩展长度时)。
从队首/队尾弹出元素 pop_front()
& pop_back()
1 |
|
时间复杂度:$O(1)$。
往期版本
v1.0.0
错误版本,写挂了 QWQ
请不要使用该版本。
v1.0.1
- 修正 Bug,添加
README
文档。 - 优化
pop
操作,减小空间开销。
开发计划
- 根据数据结构性能表现,优化参数。
- 检查内存泄漏。
- 增加函数映射,如
enqueue
、pop
等。
JavaScript 循环双端队列
https://preview.algo-x.cn/articles/JS-Circular-Deque/