Python 标准库 —— 队列(Queue,优先队列 PriorityQueue)
2024-08-31 10:51:59
优先队列,有别于普通队列的先入先出(虽然字面上还是队列,但其实无论从含义还是实现上,和普通队列都有很大的区别),也有别于栈的先入后出。在实现上,它一般通过堆这一数据结构,而堆其实是一种完全二叉树,它会对进入容器的元素进行排序(根据事先指定的规则),出队的顺序则会是二叉树的根结点代表的元素。
1. 接口介绍
import Queue
class ComparableObj: # 可比较对象,放入优先队列中
def __init__(self, **):
...
def __cmp__(self, other): # 比较规则的指定,谁做根(大顶堆,小顶堆)
# 返回的是布尔类型
...
return True/Flase
...
que = Queue.PriorityQueue()
que.put(ComparableObj(**))
que.put(ComparableObj(**))
...
que.qsize()
# 优先队列中元素的个数
que.get()
# 返回根(优先队列第一个出队的元素)
references
最新文章
- Google云平台对于2014世界杯半决赛的预测,德国阿根廷胜!
- BZOJ 2243: [SDOI2011]染色 [树链剖分]
- CAN总线(一)
- [PL/SQL]oracle数据库的导出导入
- css3很酷的加载动画多款
- UVA 1001 Say Cheese 奶酪里的老鼠(最短路,floyd)
- bzoj 1314: River过河 优先队列
- UIPickerView(选择器)
- WPS 去掉自动打开的文档漫游和在线模板
- Android开发中在一个Activity中关闭另一个Activity
- Shell工具:jsondiff.sh
- mysql和VS2010 C++链接过程中出现的问题
- 实验:ignite查询效率探究
- 让$this->;error()返回json配置
- jquery 点击元素以外任意地方隐藏该元素的方法
- Expo大作战(十四)--expo中消息推送的实现
- 解题:BZOJ 3622 已经没有什么好害怕的了·
- 使用 Gogs 搭建自己的 Git 服务器
- 使用 C# 编写简易 ASP.NET Web 服务器 ---- 模拟IIS的处理过程
- 算法笔记_197:历届试题 带分数(Java)