在數據結構當中,有一種結構叫做隊列。隊列和棧都是一個類似於列表的東西,唯一不同的地方則是“先進先出”。隊列就像我們在食堂排隊吃飯一樣,先排隊的同學最先打到飯,下面是我畫的隊列的圖片:
從這種圖當中我們可以看到隊列就如同一個吸管一樣,最先從吸管左邊進入的數字1,同時也最先吸管的最右邊出來。是否十分容易理解呢?現在我們使用Python來實現這個數據結構:
class Queue(): def __init__(self): # 初始化一個空的列表 self.__list=[] # 往隊列里插入元素 def enqueue(self,item): self.__list.append(item) def dequeue(self): return self.__list.pop(0)# 彈出隊列里最先進入的元素 # 判斷隊列是否為空 def is_empty(self): return self.__list == [] # 計算隊列的大小 def size(self): return len(self.__list) queue = Queue() # 創建隊對象完成,向隊列里面灌入元素 queue.enqueue(1) queue.enqueue(2) queue.enqueue(3) queue.enqueue(4) print("If this queue is empty? :",queue.is_empty()) # 將隊列里的元素一個一個依次取出 print(queue.dequeue()) print(queue.dequeue()) print(queue.dequeue()) print(queue.dequeue())
最后得到的輸出是:
If this queue is empty? : False 1 2 3 4
可以看到,我們插入隊列元素的順序是1,2,3,4.最后出隊列的時候,元素的輸出順序也是1,2,3,4.這就隊列的特點了。隊列將會在后面的深度優先搜索算法當中起到很大的作用。