顺序栈的定义
typedef int ElemType;
#define MaxSize 10 //定义栈中元素最大个数
typedef struct{
ElemType data[MaxSize]; //静态数组存放栈中元素
int top; //栈顶指针
}SeqStack;
初始化栈顶元素
//初始化栈顶元素
void InitStack(SeqStack &S)
{
S.top = -1;
}
//判断栈空
bool StackEmpty(SeqStack S)
{
return S.top == -1;
}
进栈操作
图中是b这个数据入栈
//进栈操作
bool Push(SeqStack &S, ElemType x)
{
if(S.top == MaxSize - 1)
{
return false; //满栈。报错
}
S.data[++S.top] = x;
return false;
}
出栈操作
//出栈操作
bool Pop(SeqStack &S, ElemType &x)
{
if(S.top == -1)
{
return false; // 栈空
}
x = S.data[S.top--];
return true;
}
读取栈顶元素
//读栈顶元素操作
bool GetTop(SeqStack S, ElemType &x)
{
if(S.top == -1)
{
return false;
}
x = S.data[S.top];
return true;
}