0、节点结构体定义
typedef struct SqStack{
int *base;
int *top;
} SqStack;
1、初始化
bool InitStack(SqStack &S)
{
S.base = new int[Maxsize]; //eg. #define Maxsize 100
if(!S.base){
return false;
}
S.top = S.base;
return true;
}
2、入栈
bool Push(SqStack &S, int e)
{
if(S.top-S.base== Maxsize){
return false;
}
*(S.top++) = e;
return true;
}
3、出栈
bool Pop(SqStack &S, int &e)
{
if(S.top== S.base){
return false;
}
e = *(--S.top);
return true;
}
4、取栈顶元素
int GetTop(SqStack S)
{
if(S.top!= S.base){
return *S.top;
}else{
return -1;
}
}
5、释放内存
void StackRelese(SqStack &S)
{
delete[] S.base;
}