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 的優先隊列示例


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM