入栈算法:
1.判断是否栈满,栈未满进行入栈操作
2.top指针指向内容获取数值
3.top指针++
出栈算法:
1.判断是否为空栈,空栈直接返回(下溢)
2.top指针--
3.元素e获取出栈元素,(用于撤销考虑)
具体代码如下
#include<iostream>
using namesapce std;
#define MAXSIZE 100
#define ERROR -1
#define OK 1
typedef int SElemType;
//创建一个栈的结构体
typedef struct{
SElemTypedef *top;
SElemTypedef *base;
int stacksize;
}SqStack;
//入栈
int SqStack_push(SqStack &S,SElemTypedef e){
if(S.top==S.base)
return ERROR;
*S.top=e;
top++;//可以和为*top++=e;
return OK;
}
//出栈
int SqStack_pop(SqStack &S,SElemTypedef &e){
if(S.top==S.base) return ERROR;
*top--;
e=*top;//相当于e=*--top;
return OK;
}
int main(){
return 0;
}