分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
优先队列,有别于普通队列的先入先出(虽然字面上还是队列,但其实无论从含义还是实现上,和普通队列都有很大的区别),也有别于栈的先入后出。在实现上,它一般通过堆这一数据结构,而堆其实是一种完全二叉树,它会对进入容器的元素进行排序(根据事先指定的规则),出队的顺序则会是二叉树的根结点代表的元素。
1. 接口介绍
import Queueclass ComparableObj: # 可比较对象,放入优先队列中 def __init__(self, **): ... def __cmp__(self, other): # 比较规则的指定,谁做根(大顶堆,小顶堆) # 返回的是布尔类型 ... return True/Flase ...que = Queue.PriorityQueue()que.put(ComparableObj(**))que.put(ComparableObj(**))...que.qsize() # 优先队列中元素的个数que.get() # 返回根(优先队列第一个出队的元素)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23