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


在數據結構當中,有一種結構叫做隊列。隊列和棧都是一個類似於列表的東西,唯一不同的地方則是“先進先出”。隊列就像我們在食堂排隊吃飯一樣,先排隊的同學最先打到飯,下面是我畫的隊列的圖片:

 從這種圖當中我們可以看到隊列就如同一個吸管一樣,最先從吸管左邊進入的數字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.這就隊列的特點了。隊列將會在后面的深度優先搜索算法當中起到很大的作用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM