Last-in, first-out (LIFO): 後進先出原則
基本操作可能有:
STACK-EMPTY
STACK-EMPTY(S)
if S.top == -1
return true;
else
return false;
PUSH
PUSH(S, x)
S.top++;
S[S.top] = x;
POP
POP(S)
if Stack-Empty(S)
error underflow;
else
S.top--;
return S[S.top+1];
練習:Show how to implement a stack using two queues. Analyze the running time of the stack operations.
先將其中一個 queues 標記為啟用,並 PUSH 到啟動的 queues,如果要 POP 就將 queue 除了第一個元素以外,其他丟到另一個。並反轉 queue,再返回非啟用 queue 中的最後一個元素。