【學習筆記】棧、隊列、雙端隊列、優先隊列

1. Stack 棧

先進後出(FILO),或者叫後進先出(LIFO)
在這裏插入圖片描述

操作 複雜度
添加 O(1)
刪除 O(1)
查詢 O(n)

P.S: 因爲元素是無序的,查詢的時候幾乎每個元素都要訪問一次,所以查詢的時間複雜度是 O(n)的

2. Queue 隊列

先進先出(FIFO) , 後進後出(LILO)
在這裏插入圖片描述

操作 複雜度
添加 O(1)
刪除 O(1)
查詢 O(n)

3. Deque 雙端隊列

官方文檔
deque 是 Double-End Queue 的簡寫
“頭和尾都可以進行元素的出和入”
在這裏插入圖片描述

操作 複雜度
添加 O(1)
刪除 O(1)
查詢 O(n)

4. Priority Queue 優先隊列

在 Python 裏面調用是 heapq
這裏可能是因爲 python 的優先隊列是 heap實現的
官方文檔

from collections import heapq 
操作 複雜度
插入 O(1)
取出 O(log(n))

P.S:對於優先隊列來說,雖然時間複雜度變高了,但是優先隊列的順序不再是先入先出/後入後出了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章