在數據結構當中,有一種結構叫作隊列。隊列和棧都是一個相似於列表的東西,惟一不一樣的地方則是「先進先出」。隊列就像咱們在食堂排隊吃飯同樣,先排隊的同窗最早打到飯,下面是我畫的隊列的圖片:python
從這種圖當中咱們能夠看到隊列就如同一個吸管同樣,最早從吸管左邊進入的數字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.這就隊列的特色了。隊列將會在後面的深度優先搜索算法當中起到很大的做用。app