void InitStack(stack &s)
{
s.base=(int *)malloc(10*sizeof(int));
if(!s.base) {cout<<"ERROR"<<endl;return;}
s.top=s.base;
s.stacksize=10;
cout<<"Stack is successfully created"<<endl;
}
void Push(stack &s,int e)
{
if(s.top-s.base>=s.stacksize)
{
s.base=(int *)realloc(s.base,(s.stacksize+5)*sizeof(int));
if(!s.base) {cout<<"failure"<<endl;return;}
s.top=s.base+s.stacksize;
s.stacksize+=5;
}
*s.top++=e;
cout<<"Add successfully!"<<endl;
}
int Pop(stack &s,int &e)
{
if(s.top==s.base) {cout<<"empty"<<endl;return 0;}
e = *--s.top;
return e;
}
boolean set_empty(Stack &S) //判断栈是否为空
{
S.top = S.base ; //置空
if(S.top == S.base)
return true;
else return false;
}
int Empty(Stack &S) //判断栈是否为空
{
if(S.top==S.base)
return 1;
return 0;
}
int GetTop(Stack &S)
{
if(!Empty(S)) return *(S.top-1); //栈若不空得到栈顶的元素
return 0;
}
//自己去改个名字就好了