佇列(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 ...