#include<iostream>
#include<stdlib.h>
using namespace std;
#define MAXSIZE 100
typedef int Status;
typedef int SElemType;
typedef struct {
SElemType *base;
SElemType *top;
int stacksize;
} SqStack;
Status InitStack(SqStack &S) {
S.base = new SElemType[MAXSIZE];
if (!S.base)
exit(-2);
S.top = S.base;
S.stacksize = MAXSIZE;
return 1;
}
Status push(SqStack &S)
{
int e;
cin>>e;
if (S.top - S.base == S.stacksize)
return 0;
*(S.top++)=e;
return 1;
}
Status pop(SqStack &S)
{
int e;
if (S.base == S.top)
cout<<"error";
e=*(--S.top);
cout<<e<<" ";
return 1;
}
int main() {
SqStack s;
int n;
int flag=1;
InitStack(s);
while(flag)
{
cin >> n;
switch(n)
{
case 1:
push(s);
break;
case 0:
pop(s);
break;
default:
flag=0;
break;
}
}
return 0;
}
if (S.base == S.top)
cout<<"error";
->
if (S.top - S.base == -1)
cout<<"error";
空栈不应该返回error
if (S.base == S.top)
cout<<"error";
->
if (S.top - S.base == -1)
cout<<"error";
空栈不应该返回error
if (S.base == S.top)
cout<<"error";
->
if (S.top - S.base == -1)
cout<<"error";
空栈不应该返回error
if (S.base == S.top)
cout<<"error";
->
if (S.top - S.base == -1)
cout<<"error";
空栈不应该返回error
if (S.base == S.top)
cout<<"error";
->
if (S.top - S.base == -1)
cout<<"error";
空栈不应该返回error
if (S.base == S.top)
cout<<"error";
->
if (S.top - S.base == -1)
cout<<"error";
空栈不应该返回error
if (S.base == S.top)
cout<<"error";
->
if (S.top - S.base == -1)
cout<<"error";
空栈不应该返回error
if (S.base == S.top)
cout<<"error";
->
if (S.top - S.base == -1)
cout<<"error";
空栈不应该返回error
if (S.base == S.top)
cout<<"error";
->
if (S.top - S.base == -1)
cout<<"error";
空栈不应该返回error
if (S.base == S.top)
cout<<"error";
->
if (S.top - S.base == -1)
cout<<"error";
空栈不应该返回error