Python 标准库 —— 队列(Queue,优先队列 PriorityQueue)

优先队列,有别于普通队列的先入先出(虽然字面上还是队列,但其实无论从含义还是实现上,和普通队列都有很大的区别),也有别于栈的先入后出。在实现上,它一般通过堆这一数据结构,而堆其实是一种完全二叉树,它会对进入容器的元素进行排序(根据事先指定的规则),出队的顺序则会是二叉树的根结点代表的元素。

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()
                # 返回根(优先队列第一个出队的元素)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

references

Python 的优先队列示例

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

猜你喜欢

转载自www.cnblogs.com/siwnhwxh/p/10331697.html
今日推荐