python實現資料結構(五) 佇列實現

2021-08-24 20:49:08 字數 1117 閱讀 4761

佇列(queue)是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。

佇列是一種先進先出的(first in first out)的線性表,簡稱fifo。允許插入的一端為隊尾,允許刪除的一端為隊頭。佇列不允許在中間部位進行操作!假設佇列是q=(a1,a2,……,an),那麼a1就是隊頭元素,而an是隊尾元素。這樣我們就可以刪除時,總是從a1開始,而插入時,總是在佇列最後。這也比較符合我們通常生活中的習慣,排在第乙個的優先出列,最後來的當然排在隊伍最後。

功能如下:

queue() 建立乙個空的佇列

enqueue(item) 往佇列中新增乙個item元素

dequeue() 從佇列頭部刪除乙個元素

is_empty() 判斷乙個佇列是否為空

size() 返回佇列的大小

class

queue

(object):

def__init__

(self):

self.items =

defis_empty

(self):

return self.items ==

defenqueue

(self, item):

"""入隊"""

self.items.insert(0, item)

defdequeue

(self):

"""出隊"""

return self.items.pop()

defsize

(self):

return len(self.items)

if __name__ == '__main__':

q = queue()

q.enqueue("hello")

q.enqueue("world")

q.enqueue("python")

print(q.size())

print(q.dequeue())

print(q.dequeue())

print(q.dequeue())

3

hello

world

python

資料結構 五 佇列

佇列是一種操作受限的線性表,它只能在表的一端插入,在另一端刪除。特點是先進先出 fifo 其儲存方式有順序儲存和鏈式儲存。順序佇列 順序佇列會出現假溢位現象。如圖。雖然陣列前面還有空間,但是由於rear已經指向了陣列的最後,佇列無法再入隊,形成了假溢位。解決的辦法是使用迴圈佇列。判斷隊空 bool ...

資料結構5 佇列

5.1簡介 佇列 queue 和堆疊一樣是一種有序鍊錶,屬於抽象資料型別。不同在於是先進先出 first in,first out,fifo 堆疊只需要乙個top指標指向堆疊頂端即可,但是佇列必須使用front和rear兩個指標分別指向佇列的前端和尾端。基本操作 1 create 建立空佇列 2 a...

資料結構(二) 佇列

一 佇列定義 佇列是限定在一端進行插入,另一端進行刪除特殊線性表。二 佇列基本操作 入隊出隊 三 佇列例題 1.例1 舞伴配對問題 分析 這一題是一道經典的取模運算,每一次將編號往前加一位,到達n就取模。include include include include int main return ...