说明如何在一个数组A[1...n]中实现两个栈,使得当两个栈的元素个数之和不为n时,两者都不会发生上溢。要求PUSH和POP操作的运行时间为O(1)。
STACK-EMPTY(S) if S.top==0 return TRUE else return FALSE PUSH(S, x) S.top=S.top+1 S[S.top]=x POP(S) if STACK-EMPTY(S) error "underflow" else S.top=S.top-1 return S[S.top+1]