1.
代码如下:
typedef struct
{
int top[2],bot[2]; //栈顶和栈底指针
SElemType *V; //栈数组
int m; //栈最大可容纳元素个数
}DblStack;
void StackInit(DblStack &S,int n) //初始化栈,空间为n
{
S.m = n;
S.V = (SElemType *)malloc(siezof(SElemType)*n); //开辟内存空间
top[0] = -1;
top[1] = n;
bot[0] = 0;
bot[1] = n-1;
}
bool IsEmpty(DblStack &S,int n) //判断第n栈是否为空
{
switch(n)
{
case 0:
if (top[0] == -1)
return true;
else
return false;
case 1:
if (top[1] == n)
return true;
else
return false;
}
}
bool IsFull(DblStack &S) //判断是否栈满
{
if (top[0] + 1 == top[1])
return true;
else
return false;
}
void StackPush(DblStack &S,int n,SElemType t) //第n个栈入栈操作
{
if (n == 0)
S.V[++top[0]] = t;
else
S.V[--top[1]] = t;
}
void StackPop(DblStack &S,int n) //第n个栈出栈
{
if (n == 0)
top[0]--;
else
top[1]