结构体
typedef struct
{
Elemtype data[MAXSIZE];
int top0, top1;
}ShStack;
插入
i代表插入哪个栈中
//i代表使用哪号栈
bool Push(int i,ShStack &S, Elemtype e)
{
if(i != 0 && i != 1)
return false;
if(S.top0 + 1 == S.top1) //栈满
return false;
if(i == 0)
S.data[++S.top0] = e;
else
S.data[--S.top1] = e;
return true;
}
出栈
bool Pop(int i, ShStack &S, Elemtype &e)
{
if(i != 0 && i != 1)
return false;
if(i == 0 && S.top0 == -1) //0号栈为空
return false;
if(i == 1 && S.top1 == MAXSIZE) //1号栈为空
return false;
if(i == 0)
e = S.data[S.top0--];
else
e = S.data[S.top1++];
return true;
}
获取栈顶元素
bool GetTop(int i,ShStack &S, Elemtype &e)
{
if(i != 0 && i != 1)
return false;
if(i == 0 && S.top0 == -1) //0号栈为空
return false;
if(i == 1 && S.top1 == MAXSIZE) //1号栈为空
return false;
if(i == 0)
e = S.data[S.top0];
else
e = S.data[S.top1];
return true;
}