栈 简单来说是一种线性表
存入和删除都是在栈顶进行的 底部一般不动
栈可以用一个数组来表示 一个指针指向栈顶 另一个指向栈底
栈的进出算法
入栈
1.栈顶不能溢出
2.top++ 栈指针++
s[top]=x (结束 x为新的元素)
代码
#define n 100 //进栈
viod push (int s[] ,int *top,int *x)
{
if(*top==n)printf("overflow");
else
{
*top++;
s[*top]=*x;
}
}
出栈
viod pop(int s[] , int *y,int *top)
{
if(*top==0)printf("underlow")
else
{
*y=s[*top];
top--;
}
}
要注意 上溢 与下溢
请听例题
一个火车 如图 进出车站
出战 进栈
1.如果车厢序列为 123 出战顺序为
2. 如果 车厢 序列为 123456 出战顺序 是否可以为 135426 435612
并说明过程
答案下期发
因本人能力有限如有错误请指出
向noip致敬
冲鸭