Stack(棧)
First in - Last out(先進(jìn)后出)
Last in - First out (后進(jìn)先出)
添加酝碳、刪除皆為 O(1)
image.png
Queue(隊(duì)列)
First in - First out(先進(jìn)先出)
Last in - Last out(后進(jìn)后出)
添加矾踱、刪除皆為 O(1)
image.png
Deque: Double-End Queue(雙端隊(duì)列)
兩端可以進(jìn)出的 Queue
添加、刪除皆為 O(1) 操作
image.png
Priority Queue(優(yōu)先隊(duì)列)
插入操作:O(1)
取出操作:O(logN) - 按照元素的優(yōu)先級(jí)取出
底層具體實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)較為多樣和復(fù)雜:heap(堆)疏哗、bst(二叉搜索樹)呛讲、treap(樹堆)
java 中的 PriorityQueue: https://docs.oracle.com/javase/10/docs/api/java/util/PriorityQueue.html**
如何查詢接口信息?
- google Java + Deque or Python + Deque 查看官方文檔或者源碼實(shí)現(xiàn)
Java:
Stack: http://developer.classpath.org/doc/java/util/Stack-source.html
Queue: https://docs.oracle.com/javase/7/docs/api/java/util/Queue.html
Priority Queue: http://developer.classpath.org/doc/java/util/PriorityQueue-source.html
Python:
高性能的 container 庫(kù): https://docs.python.org/2/library/collections.html
復(fù)雜度分析:
image.png