【演算法】7 分不清棧和佇列?一張圖給你完整體會

nomasp發表於2015-06-20

棧和佇列

學過沒學過演算法的應該都聽過棧和佇列了吧,往往容易弄混的就是“後進先出”和“先進先出”了。

今天又看到了“河內塔”的相關資料,也被稱為“漢諾塔”等。於是就想到了畫出下面這樣的圖案。

這裡寫圖片描述

如果大家覺得這張圖不錯可以直接右鍵另存為哦,記得點贊哈~

那麼,關於棧和佇列下面就直接列出相關操作的虛擬碼咯。

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

這篇部落格比較短,不過還是希望大家繼續關注啦……

相關文章