最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python數(shù)據(jù)結(jié)構(gòu)與算法中的隊(duì)列詳解(1)

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

什么是隊(duì)列?

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

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

構(gòu)建一個(gè)隊(duì)列

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

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

與構(gòu)建一樣,我們利用簡(jiǎn)潔強(qiáng)大的列表來實(shí)現(xiàn)隊(duì)列。?

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

隊(duì)列實(shí)現(xiàn)代碼如下:

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

下圖展示了隊(duì)列的操作及其返回結(jié)果:

在這里插入圖片描述

總結(jié)

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

相關(guān)文章

  • 淺析Python基礎(chǔ)-流程控制

    淺析Python基礎(chǔ)-流程控制

    Python編程語言的作用非常強(qiáng)大,而且其應(yīng)用方便的特點(diǎn)也對(duì)開發(fā)人員起到了非常大的作用。在這里我們就可以先從Python流程控制關(guān)鍵字的相關(guān)概念開始了解,從而初步掌握這一語言的特點(diǎn)
    2016-03-03
  • flask中主動(dòng)拋出異常及統(tǒng)一異常處理代碼示例

    flask中主動(dòng)拋出異常及統(tǒng)一異常處理代碼示例

    這篇文章主要介紹了flask中主動(dòng)拋出異常及統(tǒng)一異常處理代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • Python手機(jī)與電腦游戲腳本的編寫方法

    Python手機(jī)與電腦游戲腳本的編寫方法

    本文給大家分享一個(gè)手機(jī)和電腦雙平臺(tái)的游戲腳本,幫助大家贏得游戲,步驟很簡(jiǎn)單,下面小編給大家分享基于Python游戲腳本的編寫方法,感興趣的朋友一起看看吧
    2021-11-11
  • Windows 平臺(tái)做 Python 開發(fā)的最佳組合(推薦)

    Windows 平臺(tái)做 Python 開發(fā)的最佳組合(推薦)

    在 Windows 上如何做 Python 開發(fā)呢?相信大神們都會(huì)有自己的解決方案,但本文希望介紹微軟官方發(fā)布的 Terminal 和 Visual Studio Code,希望它們能構(gòu)建更流暢的 Windows 開發(fā)體驗(yàn),感興趣的朋友跟隨小編一起看看吧
    2020-07-07
  • python 實(shí)現(xiàn)紅包隨機(jī)生成算法的簡(jiǎn)單實(shí)例

    python 實(shí)現(xiàn)紅包隨機(jī)生成算法的簡(jiǎn)單實(shí)例

    下面小編就為大家?guī)硪黄猵ython 實(shí)現(xiàn)紅包隨機(jī)生成算法的簡(jiǎn)單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • python numpy矩陣信息說明,shape,size,dtype

    python numpy矩陣信息說明,shape,size,dtype

    這篇文章主要介紹了python numpy矩陣信息說明,shape,size,dtype,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • python獲得圖片base64編碼示例

    python獲得圖片base64編碼示例

    這篇文章主要介紹了用python語言獲得圖片的Base64編碼的示例,大家參考使用吧
    2014-01-01
  • python使用thrift教程的方法示例

    python使用thrift教程的方法示例

    這篇文章主要介紹了python使用thrift教程的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • python調(diào)用MySql保姆級(jí)圖文教程(包會(huì)的)

    python調(diào)用MySql保姆級(jí)圖文教程(包會(huì)的)

    MySQL是當(dāng)今市場(chǎng)上最受歡迎的數(shù)據(jù)庫(kù)系統(tǒng)之一,由于大多數(shù)應(yīng)用程序需要以某種形式與數(shù)據(jù)交互,因此像Python這樣的編程語言提供了用于存儲(chǔ)和訪問這些數(shù)據(jù)的工具,這篇文章主要給大家介紹了關(guān)于python調(diào)用MySql的相關(guān)資料,需要的朋友可以參考下
    2024-12-12
  • 一文帶你玩轉(zhuǎn)Python屬性和方法

    一文帶你玩轉(zhuǎn)Python屬性和方法

    Python是一種簡(jiǎn)潔而強(qiáng)大的編程語言,其支持面向?qū)ο蟮木幊谭妒?,本文將從入門到精通介紹Python中的屬性和方法,幫助大家深入了解這些重要的概念,并學(xué)會(huì)如何在實(shí)際開發(fā)中靈活應(yīng)用它們
    2023-07-07

最新評(píng)論

闽清县| 临湘市| 郑州市| 徐水县| 甘肃省| 大名县| 嘉祥县| 张北县| 宜章县| 上蔡县| 龙山县| 和政县| 山东省| 金华市| 岱山县| 六安市| 义马市| 兴化市| 文安县| 裕民县| 达拉特旗| 乌海市| 通化市| 辽源市| 永平县| 油尖旺区| 工布江达县| 治多县| 彭山县| 鄂托克前旗| 中牟县| 汉沽区| 龙口市| 皋兰县| 体育| 东方市| 象山县| 莱芜市| 大邑县| 新兴县| 香格里拉县|