国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python數(shù)據(jù)結(jié)構(gòu)——隊(duì)列

wwolf / 2313人閱讀

摘要:隊(duì)列是一種先進(jìn)先出,的數(shù)據(jù)結(jié)構(gòu)。隊(duì)列的另外一項(xiàng)重要操作是讀取隊(duì)頭的元素。通常的操作定義一個(gè)空隊(duì)列,無參數(shù),返回值是空隊(duì)列。刪除隊(duì)列頭部的數(shù)據(jù)項(xiàng),不需要參數(shù),返回值是被刪除的數(shù)據(jù),隊(duì)列本身有變化。

隊(duì)列是一種列表,不同的是隊(duì)列只能在隊(duì)尾插入元素,在隊(duì)首刪除元素。隊(duì)列用于存儲(chǔ)按順序排列的數(shù)據(jù),先進(jìn)先出,這點(diǎn)和棧不一樣,在棧中,最后入棧的元素反而被優(yōu)先處理。可以將隊(duì)列想象成在銀行前排隊(duì)的人群,排在最前面的人第一個(gè)辦理業(yè)務(wù),新來的人只能在后面排隊(duì),直到輪到他們?yōu)橹埂?/p>

隊(duì)列是一種先進(jìn)先出(First-In-First-Out,F(xiàn)IFO)的數(shù)據(jù)結(jié)構(gòu)。隊(duì)列被用在很多地方,比如提交操作系統(tǒng)執(zhí)行的一系列進(jìn)程、打印任務(wù)池等,一些仿真系統(tǒng)用隊(duì)列來模擬銀行或雜貨店里排隊(duì)的顧客。

隊(duì)列的兩種主要操作是:向隊(duì)列中插入新元素和刪除隊(duì)列中的元素。插入操作也叫做入隊(duì),刪除操作也叫做出隊(duì)。入隊(duì)操作在隊(duì)尾插入新元素,出隊(duì)操作刪除隊(duì)頭的元素。

隊(duì)列的另外一項(xiàng)重要操作是讀取隊(duì)頭的元素。這個(gè)操作叫做peek()。該操作返回隊(duì)頭元素,但不把它從隊(duì)列中刪除。除了讀取隊(duì)頭元素,我們還想知道隊(duì)列中存儲(chǔ)了多少元素,可以使用size()滿足該需求。

queue通常的操作:

Queue()        定義一個(gè)空隊(duì)列,無參數(shù),返回值是空隊(duì)列。
enqueue(item)  在隊(duì)列尾部加入一個(gè)數(shù)據(jù)項(xiàng),參數(shù)是數(shù)據(jù)項(xiàng),無返回值。
dequeue()      刪除隊(duì)列頭部的數(shù)據(jù)項(xiàng),不需要參數(shù),返回值是被刪除的數(shù)據(jù),隊(duì)列本身有變化。
isEmpty()      檢測(cè)隊(duì)列是否為空。無參數(shù),返回布爾值。
size()         返回隊(duì)列數(shù)據(jù)項(xiàng)的數(shù)量。無參數(shù),返回一個(gè)整數(shù)。

隊(duì)列操作舉例:

Queue Operation Queue Contents Return Value
q.isEmpty() [] True
q.enqueue(4) [4]
q.enqueue("dog") ["dog",4]
q.enqueue(True) [True,"dog",4]
q.size() [True,"dog",4] 3
q.isEmpty() [True,"dog",4] False
q.enqueue(8.4) [8.4,True,"dog",4]
q.dequeue() [8.4,True,"dog"] 4
q.dequeue() [8.4,True] "dog"
q.size() [8.4,True] 2

Queue 類模擬:

class Queue:
    """模擬隊(duì)列"""
    def __init__(self):
        self.items = []

    def isEmpty(self):
        return self.items == []

    def enqueue(self, item):
        self.items.insert(0,item)

    def dequeue(self):
        return self.items.pop()

    def size(self):
        return len(self.items)

以下是測(cè)試代碼:

q=Queue()
q.isEmpty()

q.enqueue("dog")
q.enqueue(4)
q=Queue()
q.isEmpty()

q.enqueue(4)
q.enqueue("dog")
q.enqueue(True)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/44177.html

相關(guān)文章

  • Python -- Queue模塊

    摘要:默認(rèn)值為,指定為時(shí)代表可以阻塞,若同時(shí)指定,在超時(shí)時(shí)返回。當(dāng)消費(fèi)者線程調(diào)用意味著有消費(fèi)者取得任務(wù)并完成任務(wù),未完成的任務(wù)數(shù)就會(huì)減少。當(dāng)未完成的任務(wù)數(shù)降到,解除阻塞。 學(xué)習(xí)契機(jī) 最近的一個(gè)項(xiàng)目中在使用grpc時(shí)遇到一個(gè)問題,由于client端可多達(dá)200,每個(gè)端口每10s向grpc server發(fā)送一次請(qǐng)求,server端接受client的請(qǐng)求后根據(jù)request信息更新數(shù)據(jù)庫,再將數(shù)據(jù)...

    rubyshen 評(píng)論0 收藏0
  • rabbitmq中文教程python版 - 介紹

    摘要:每當(dāng)我們收到一條消息,這個(gè)回調(diào)函數(shù)就被皮卡庫調(diào)用。接下來,我們需要告訴這個(gè)特定的回調(diào)函數(shù)應(yīng)該從我們的隊(duì)列接收消息為了讓這個(gè)命令成功,我們必須確保我們想要訂閱的隊(duì)列存在。生產(chǎn)者計(jì)劃將在每次運(yùn)行后停止歡呼我們能夠通過發(fā)送我們的第一條消息。 源碼:https://github.com/ltoddy/rabbitmq-tutorial 介紹 RabbitMQ是一個(gè)消息代理:它接受和轉(zhuǎn)發(fā)消息。你...

    yimo 評(píng)論0 收藏0
  • Python數(shù)據(jù)結(jié)構(gòu)——雙端隊(duì)列

    摘要:在隊(duì)尾添加入一個(gè)元素,參數(shù)是數(shù)據(jù)項(xiàng),無返回值。刪除隊(duì)首的元素,不需要參數(shù),返回值是被刪除的元素,隊(duì)列本身有變化。列表用于隨機(jī)訪問和定長(zhǎng)數(shù)據(jù)的操作,包括切片,而雙端隊(duì)列適用于在兩端壓入或彈出元素,索引但不包括切片的效率可能低于列表。 雙端隊(duì)列(Deque),是一種類似于隊(duì)列的元素的有序集合。它擁有兩端,隊(duì)首和隊(duì)尾,并且元素保持在當(dāng)前的位置。雙端隊(duì)列的一個(gè)不同點(diǎn)就是,添加和刪除元素的位置不...

    cjie 評(píng)論0 收藏0
  • 線性結(jié)構(gòu) 隊(duì)列與棧

    摘要:線性結(jié)構(gòu)隊(duì)列與棧棧棧是一種遵循先進(jìn)后出原則的有序列表,新添加或待刪除的元素都保存在棧的一端,這一端被稱作為棧頂,另一端被稱作為棧底。將字符串的每個(gè)字符按順序亞入棧。 線性結(jié)構(gòu) 隊(duì)列與棧 棧 棧(Stack)是一種遵循先進(jìn)后出(LIFO)原則的有序列表,新添加或待刪除的元素都保存在棧的一端,這一端被稱作為棧頂,另一端被稱作為棧底。在棧里,新元素都靠近棧頂,舊元素都靠近棧底。 棧的操作 ...

    Turbo 評(píng)論0 收藏0
  • 線性結(jié)構(gòu) 隊(duì)列與棧

    摘要:線性結(jié)構(gòu)隊(duì)列與棧棧棧是一種遵循先進(jìn)后出原則的有序列表,新添加或待刪除的元素都保存在棧的一端,這一端被稱作為棧頂,另一端被稱作為棧底。將字符串的每個(gè)字符按順序亞入棧。 線性結(jié)構(gòu) 隊(duì)列與棧 棧 棧(Stack)是一種遵循先進(jìn)后出(LIFO)原則的有序列表,新添加或待刪除的元素都保存在棧的一端,這一端被稱作為棧頂,另一端被稱作為棧底。在棧里,新元素都靠近棧頂,舊元素都靠近棧底。 棧的操作 ...

    Turbo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<