首页 > 试题广场 >

说明如何在一个数组A[1...n]中实现两个栈,使得当两个栈

[问答题]
说明如何在一个数组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]

这道题你会答吗?花几分钟告诉大家答案吧!