主要按照了数严蔚敏教授编写的数据结构里面的算法思想进行编写的
GITHUB地址为https://github.com/fz861062923/Data-Structure/tree/master/Squential%20Stack上面有主程序
顺序栈的存储结构
typedef struct
{
SElemType *base;
SElemType *top;
int stacksize;
}sqStack;
初始化顺序栈
Status InitStack(sqStack &S)
{
S.base=new SElemType[MAXSIZE];
if(!S.base)
return ERROR;
//栈顶指针初始为base表示为栈空
S.top=S.base;
S.stacksize=MAXSIZE;
return OK;
}
入栈
Status Push(sqStack &S,SElemType e)
{
if(S.top-S.base==MAXSIZE)
return ERROR;
*S.top++=e;
return OK;
}
*S.top++=e;
等价于*S.top=s;S.top++;
出栈
Status Pop(sqStack &S,SElemType &e)
{
if(S.top==S.base)
return ERROR;
e=*--S.top;
return OK;
}
- 其中
e=*--S.top;
等价于--S.top;e=*S.top
取出栈顶元素
Status GetTop(sqStack S)
{
if(S.top!=S.base)
return OK;
}