结点进栈:首先执行top加1,使top指向新的栈顶位置,然后将数据元素保存到栈顶(top所指的当前位置)。
#include<stdio.h>
#include<math.h>
# define MAX_STACK_SIZE 100 /* 栈向量大小 */
typedef int Status ;
#define OK 1
#define ERROR -1
typedef int ElemType ;
typedef struct sqstack
{
// 数组存储栈
ElemType stack_array[MAX_STACK_SIZE] ;
// top代表栈顶的位置
int top;
}SqStack ;
// 静态栈的压栈(进栈)
Status push(SqStack S , ElemType e)
/* 使数据元素e进栈成为新的栈顶 */
{
// 数组最大索引MAX_STACK_SIZE-1,如果相等,栈满,无法添加元素
if (S.top==MAX_STACK_SIZE-1)
return ERROR; /* 栈满,返回错误标志 */
S.top++ ; /* 栈顶指针加1 */
S.stack_array[S.top]=e ; /* e成为新的栈顶 */
return OK; /* 压栈成功 */
}