共享栈
#define MaxSize 50
typedef struct{
ElemType data[MaxSize];
int top1;
int top2;
} SqDoubleStack;
bool Push(SqDoubleStack &S,ElemType e,int StackNum)
{
if(S.top1+1==S.top2)
{
return false;
}
if(StackNum==1)
{
S.data[++S.top1] = e;
return true;
}
if(StackNum==2)
{
S.data[--S.top2] = e;
return true;
}
}
bool Pop(SqDoubleStack &S,ElemType &e,int StackNum)
{
if(StackNum==1)
{
if(S.top1==-1)
{
return false;
}
e = S.data[S.top1--];
return true;
}
if(StackNum==2)
{
if(S.top2==MaxSize)
{
return false;
}
e = S.data[S.top2++];
return true;
}
}