Python 数据结构与算法——deque(双端队列)
来源:互联网 发布:安徽省大数据产业协会 编辑:程序博客网 时间:2024/06/06 07:23
Python 中的 list 类型(使用其内部的 append:尾部进,和 pop 成员函数:尾部出,左端受限)能胜任 stack 的角色,但其在前端的 pop(或 insert)的操作时间都是线性级的。
而在 BFS(广度优先)这类算法中(尾部进,头部出),我们就需要一种双端队列(double-ended queue,deque)。这种队列通常都是用链表(其前后端的追加及 pop 都属于常数级操作)。
Python 本身在其标准库的 collections 模块中就提供了 deque 类。
from collections import deque
该类在右端:
- (1)append
- (2)extend
- (3)pop
左端:
- (1)appendleft
- (2)extendleft
- (3)popleft
在内部,deque 类的实现是一个块空间的双向链表,其中每个独立元素都是一个数组。尽管它与纯独立元素组成的链表近乎等效,但这样做能降低开销并且再实践中更为有效。例如,如果它是一个普通的列表,我们通过表达式 d[k] 就能访问到 d 队列中的第 k 个元素。同理,如果 deque 对象中的每个快空间中都有 b 个元素,那么我们就只需要遍历第 k/b 块空间就够了。
0 0
- Python 数据结构与算法——deque(双端队列)
- Python 数据结构与算法——deque
- Python 内置数据结构 —— queue(队列)、deque(双端队列)
- python 双端队列 deque
- Java 数据结构之Deque(双端队列)
- 双端队列(deque)
- 双端队列(Deque)
- 【C++ 与 STL】双端队列:deque
- 数据结构与算法——循环队列
- 数据结构与算法——链队列
- 数据结构与算法之—循环队列
- 双端队列Deque
- 双端队列deque
- 双端队列 (deque)
- 数据结构与算法(13)——队列
- 数据结构与算法(14)——队列习题一
- 数据结构与算法(15)——队列习题二
- 数据结构与算法(java)——栈和队列
- View平移动画的正确写法
- Jedis源码解析(ShardedJedis)
- Unity3d 开发(十)使用uTomate自动化打包流程
- JDK的安装与环境变量配置
- CF IndiaHack A 水题
- Python 数据结构与算法——deque(双端队列)
- B
- iOS的系统框架
- 最流行的android组件大全
- mysql常用命令大全
- php生成的csv, 无法完整显示带前导0的数字
- POJ 1094 Sorting It All Out【拓扑排序】
- codevs2822爱在心中
- FastCV Public API最新版本1.7.1概述