欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python數(shù)據(jù)結構與算法中的隊列詳解(1)

 更新時間:2022年03月09日 16:50:43   作者:姜學遷  
這篇文章主要為大家詳細介紹了Python的隊列,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

什么是隊列?

隊列,與棧類似,是有序集合。添加操作發(fā)生在 “尾部”,移除操作只發(fā)生在 “頭部”。新元素只從尾部進入隊列,然后一直向前移動到頭部,直到成為下一個被移除的元素。?

最新添加的元素必須在隊列的尾部等待,在隊列中時間最長的元素則排在最前面。這種排序原則被稱作FIFO(first-in first-out),即先進先出,也稱先到先得。在日常生活中,我們經(jīng)常排隊,這便是最簡單的隊列例子。進電影院要排隊,在超市結賬要排隊,買咖啡也要排隊。好的隊列只允許一頭進,另一頭出,不可能發(fā)生插隊或者中途離開的情況。?

構建一個隊列

如前所述,隊列是元素的有序集合,添加操作發(fā)生在其尾部,移除操作則發(fā)生在頭部。隊列的操作順序是 FIFO,它支持以下操作。

  • 創(chuàng)建一個空隊列。它不需要參數(shù),且會返回一個空隊列。Queue()
  • 在隊列的尾部添加一個元素。 它需要一個元素作為參數(shù),不返回任何值。enqueue(item)
  • 從隊列的頭部移除一個元素。它不需要參數(shù),且會返回一個元素,并修改隊列的內(nèi)容。 dequeue()
  • 檢查隊列是否為空。它不需要參數(shù), 且會返回一個布爾值。isEmpty()
  • 返回隊列中元素的數(shù)目。它不需要參數(shù),且會返回一個整數(shù)size()?

與構建一樣,我們利用簡潔強大的列表來實現(xiàn)隊列。?

需要確定列表的哪一端是隊列的尾部,哪一端是頭部。 我們假設隊列的尾部在列表的位置0處。 如此一來,便可以使用 insert 函數(shù)向隊列的尾部添加新元素。pop 則可用于移除隊列頭部的元素(列表中的最后一個元素)。這意味著添加操作的時間復雜度是O(n),移除操作則是O(1)。?

隊列實現(xiàn)代碼如下:

class Queue:
    def __init__(self):
        self.items = []            # 構建空隊列
        print("你創(chuàng)建了一個隊列")
    def isEmpty(self):
        return self.items ==[]     # 判斷是否為空
    def enqueue(self,item):
        self.items.insert(0, item) # 在隊列尾部(列表左端)插入元素
        print("你在隊列尾部插入了一個%s" % item)
    def dequeue(self):
        print("你在隊列頭部移除了一個元素")
        return self.items.pop()    # 在隊列頭部(列表右端)移出元素
    def size(self):
        return len(self.items)     # 隊列(列表)長度
    def look(self):
        print(self.items)

下圖展示了隊列的操作及其返回結果:

在這里插入圖片描述

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內(nèi)容!    

相關文章

  • Pytorch mask_select 函數(shù)的用法詳解

    Pytorch mask_select 函數(shù)的用法詳解

    今天小編就為大家分享一篇Pytorch mask_select 函數(shù)的用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python如何將多個模型的ROC曲線繪制在一張圖(含圖例)

    python如何將多個模型的ROC曲線繪制在一張圖(含圖例)

    這篇文章主要給大家介紹了關于python如何將多個模型的ROC曲線繪制在一張圖的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-02-02
  • python創(chuàng)建n行m列數(shù)組示例

    python創(chuàng)建n行m列數(shù)組示例

    今天小編就為大家分享一篇python創(chuàng)建n行m列數(shù)組示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python將字符串list寫入excel和txt的實例

    python將字符串list寫入excel和txt的實例

    今天小編就為大家分享一篇python將字符串list寫入excel和txt的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python實現(xiàn)獲取aws route53域名信息的方法

    python實現(xiàn)獲取aws route53域名信息的方法

    最近由于工作原因接觸到aws的服務,我需要實時獲取所有的域名信息,用于對其進行掃描,因此寫了一個自動化爬取腳本 給需要的人分享,對python獲取aws route53域名信息相關知識感興趣的朋友一起看看吧
    2023-12-12
  • 使用Python點云生成3D網(wǎng)格

    使用Python點云生成3D網(wǎng)格

    本文主要介紹了使用Python點云生成3D網(wǎng)格,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • 對python中Matplotlib的坐標軸的坐標區(qū)間的設定實例講解

    對python中Matplotlib的坐標軸的坐標區(qū)間的設定實例講解

    今天小編就為大家分享一篇對python中Matplotlib的坐標軸的坐標區(qū)間的設定實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • opencv 圖像禮帽和圖像黑帽的實現(xiàn)

    opencv 圖像禮帽和圖像黑帽的實現(xiàn)

    這篇文章主要介紹了opencv 圖像禮帽和圖像黑帽的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • python boto和boto3操作bucket的示例

    python boto和boto3操作bucket的示例

    這篇文章主要介紹了python boto和boto3操作bucket的示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-10-10
  • Python采集貓眼兩萬條數(shù)據(jù) 對《無名之輩》影評進行分析

    Python采集貓眼兩萬條數(shù)據(jù) 對《無名之輩》影評進行分析

    這篇文章主要給大家介紹了關于利用Python榮國采集兩萬條貓眼數(shù)據(jù),對《無名之輩》影評進行分析的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧
    2018-12-12

最新評論