Python資料結構———隊列

來源:互聯網
上載者:User

標籤:需要   return   bsp   必須   結構   使用   刪除元素   ini   辦理   

隊列(Queue)

隊列也是一系列有順序的元素的集合,新元素的加入在隊列的一端,叫做“隊尾”(rear),已有元素的移除發生在隊列的另一端,叫做“隊首”(front),和棧不同的是,隊列只能在隊尾插入元素,在隊首刪除元素。最新加入的元素必須處於隊尾,在隊列停留時間最長的元素處於隊首。可以把隊列想象成在銀行前排隊的人群,排在最前面的人第一個辦理業務,新來的人只能在後面排隊,直到輪到他們為止。這是一種先進先出(FIFO,First-In-First-Out)的資料結構。

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

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

隊列Queue的操作:

Queue()        定義一個空隊列,無參數,傳回值是空隊列。

enqueue(item)  在隊列尾部加入一個資料項目,參數是資料項目,無傳回值。dequeue()      刪除隊列頭部的資料項目,不需要參數,傳回值是被刪除的資料,隊列本身有變化。isEmpty()      檢測隊列是否為空白。無參數,返回布爾值。size()         返回隊列資料項目的數量。無參數,返回一個整數。類比隊列
class Queue:    ‘‘‘類比隊列‘‘‘    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)
>>> q = Queue()>>> q.isEmpty()True>>> q.enqueue(‘dog‘)>>> q.enqueue(4)>>> q.isEmpty()False>>> q.size()2>>> q.enqueue(True)>>> q.size()3>>> q.dequeue()‘dog‘>>> q.size()2

 

Python資料結構———隊列

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.