顺序栈的基本操作
//数据结构
typdef struct{
int data[MAXSIZE];
int top;//栈顶指针
}stk;
//初始化
stk.top = -1;
//入栈
bool push(stk &s,int x)
{
//判满
if(s.top == MAXSIZE-1)
return false;
s.data[++ s.top] = x;
return true;
}
//出栈:弹出的栈顶元素赋值给x
bool pop(stk &s,int &x)
{
//判空
if(s.top == -1)
return false;
//如果是只读取栈顶,不需要动指针
x = s.data[s.top--];
return true;
}
//判空条件
stk.top == -1
//栈满条件
stk.top == MAXSIZE-1
//栈的长度
length = stk.top + 1
特点
后进先出
缺点
入栈操作受数组上界约束,可能会发生栈上溢