數據結構與算法:隊列(Queue)的實現

在數據結構當中,有一種結構叫作隊列。隊列和棧都是一個相似於列表的東西,惟一不一樣的地方則是「先進先出」。隊列就像咱們在食堂排隊吃飯同樣,先排隊的同窗最早打到飯,下面是我畫的隊列的圖片:
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

相關文章
相關標籤/搜索