【演算法】7 分不清棧和佇列?一張圖給你完整體會
棧和佇列
學過沒學過演算法的應該都聽過棧和佇列了吧,往往容易弄混的就是“後進先出”和“先進先出”了。
今天又看到了“河內塔”的相關資料,也被稱為“漢諾塔”等。於是就想到了畫出下面這樣的圖案。
如果大家覺得這張圖不錯可以直接右鍵另存為哦,記得點贊哈~
那麼,關於棧和佇列下面就直接列出相關操作的虛擬碼咯。
棧
STACK-EMPTY(S)
1 if S.top==0
2 return TRUE
3 else
4 return FLASE
PUSH(S,k)
1 S.top=S.top+1
2 S[S.top]=x
POP(S)
1 if STACK-EMPTY(S)
2 error "underflow"
3 else
4 S.top=S.top-1
5 return S[S.top+1]
佇列
ENQUEUE(Q,x)
1 Q[Q.tail]=x
2 if Q.tail==Q.length
3 Q.tail=1
4 else
5 Q.tail=Q.tail+1
DEQUEUE(Q)
1 x=Q[Q.head]
2 if Q.head=Q.length
3 Q.head=1
4 else
5 Q.head=Q.head+1
6 return x
這篇部落格比較短,不過還是希望大家繼續關注啦……
相關文章
- 《演算法》- 佇列和棧演算法佇列
- 如果讓你手寫個棧和佇列,你還會寫嗎?佇列
- 演算法之美:棧和佇列演算法佇列
- 佇列和棧佇列
- 棧和佇列佇列
- 演算法-棧佇列堆演算法佇列
- 一張圖帶你理解和實現RabbitMQ的延遲佇列功能MQ佇列
- Chapter 2 棧和佇列APT佇列
- JavaScript的資料結構與演算法(一)——棧和佇列JavaScript資料結構演算法佇列
- 佇列,棧佇列
- 棧、佇列佇列
- 棧-佇列佇列
- 【演算法】4 五張圖帶你體會堆演算法演算法
- 三、資料結構演算法-棧、佇列、優先佇列、雙端佇列資料結構演算法佇列
- 《資料結構與演算法》——表、棧和佇列資料結構演算法佇列
- 結構與演算法(02):佇列和棧結構演算法佇列
- 淺談演算法和資料結構(1):棧和佇列演算法資料結構佇列
- 2. 揹包,佇列和棧佇列
- time模組,collections模組,佇列和棧佇列
- 資料結構—棧和佇列資料結構佇列
- 資料結構(棧和佇列)資料結構佇列
- 【資料結構】--棧和佇列資料結構佇列
- C#實現棧和佇列C#佇列
- 單調棧 和 單調佇列佇列
- 單調棧和單調佇列佇列
- “棧”與“佇列”呢點事(一)佇列
- 學習JavaScript資料結構(一)——棧和佇列JavaScript資料結構佇列
- 通過佇列實現棧OR通過棧實現佇列佇列
- 資料結構之棧和佇列資料結構佇列
- python資料結構與演算法——棧、佇列與雙端佇列Python資料結構演算法佇列
- 堆、棧以及佇列佇列
- java 棧與佇列Java佇列
- 演算法系列(六)資料結構之表佇列和棧演算法資料結構佇列
- 畫江湖之資料結構【第二話:佇列和棧】佇列資料結構佇列
- 畫江湖之資料結構 [第二話:佇列和棧] 佇列資料結構佇列
- 資料結構與演算法-棧與佇列資料結構演算法佇列
- offer通過--7兩個棧實現佇列-2佇列
- 棧和佇列:滑動視窗和陣列變樹問題佇列陣列