Python 标准库 —— 队列 Queue 优先队列 PriorityQueue

分享一下我老师大神的人工智能教程!零基础,通俗易懂!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

references

Python 的优先队列示例

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述

你可能感兴趣的:(Python 标准库 —— 队列 Queue 优先队列 PriorityQueue)