zoukankan      html  css  js  c++  java
  • 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()
                    # 返回根(优先队列第一个出队的元素)

    references

    Python 的优先队列示例

  • 相关阅读:
    Java技术 第六次实验 计科1501 胡开辉
    Java技术 第五次实验 计科1501 胡开辉
    Java第四次作业
    Java第三次作业
    Css新增内容
    Html5新增特性
    Jquery图集
    选项卡
    轮播图
    标准命名
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9424108.html
Copyright © 2011-2022 走看看