1.0什麼是隊列
隊列是項的有序結合,其中添加新項的一端稱爲隊尾,移除項的一端稱爲隊首。當一個元素從隊尾進入隊列時,一直向隊首移動,直到它成爲下一個需要移除的元素爲止。最近添加的元素必須在隊尾等待。集合中存活時間最長的元素在隊首,這種排序成爲 FIFO,先進先出,也被成爲先到先得。
隊列的最簡單的例子是我們平時不時會參與的列。排隊等待電影,在雜貨店的收營臺等待,在自助餐廳排隊等待(這樣我們可以彈出托盤棧)。行爲良好的線或隊列是有限制的,因爲它只有一條路,只有一條出路。不能插隊,也不能離開。你只有等待了一定的時間才能到前面。Figure 1 展示了一個簡單的 Python 對象隊列
- Queue() 創建一個空的新隊列。 它不需要參數,並返回一個空隊列。
- enqueue(item) 將新項添加到隊尾。 它需要 item 作爲參數,並不返回任何內容。
- dequeue() 從隊首移除項。它不需要參數並返回 item。 隊列被修改。
- isEmpty() 查看隊列是否爲空。它不需要參數,並返回布爾值。
- size() 返回隊列中的項數。它不需要參數,並返回一個整數。
新建一個queue_definition.py文件
class Queue(object): 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) def list1(self): return self.items
再新建一個文件進行測試
from python_basic_queue.queue_definition import Queue # 初始化一個隊列 q = Queue() # 隊列是否爲空 print(q.isEmpty()) # 添加一個元素 q.enqueue(8.4) # 當前隊列的元素 print(q.list1()) # 添加一個元素 q.enqueue(1.2) # 當前隊列的元素 print(q.list1()) # 添加一個元素 q.enqueue("python") # 當前隊列的元素 print(q.list1()) # 隊列是否爲空 print(q.isEmpty()) # 隊列出一個元素 q.dequeue() # 當前隊列的元素 print(q.list1()) # 隊列出一個元素 q.dequeue() # 當前隊列的元素 print(q.list1()) # 隊列出一個元素 q.dequeue() # 當前隊列的元素 print(q.list1()) # 隊列是否爲空 print(q.isEmpty())