新栏目!!!
————————————华丽的分割线————————————
栈是个神奇的东西,怎么说呢?你就想象你在我小学食堂排队打汤,结果所有人都从队伍头部插进来就好了
那么我们先介绍一下栈:
栈,又称FILO(First In Last Out先进后出),是一个线性结构,只有一个指针-栈顶(top)
那么栈有什么操作呢?
好了我们再请出我们的打汤大妈
这时候,终于有人来了
于是,top++,把这个人扔进空栈中。
正当阿姨打完汤,有一个人串了进来!
那么问题来了,这个人从左边还是右边加入呢?
由于输入输出端都在阿姨处,所以从靠近阿姨处加入。
所以这是加入(push)代码
void push(int x)
{
a[top++]=x;
}
还有stack的主代码
const int MAXN=10086;
struct stack
{
int top;
int a[MAXN];
stack(){memset(a,0,sizeof(a)),top=0;}
}
加完人后,变成了这样:
然后第二个人打完汤又出去了。
这时候就要用到出栈(pop)函数,就是把top–就可以了(别问我为什么)
bool pop()
{
if(!top)return 0;
top--;
return 1;
}
然后变成了这样
突然,数以万计的人冲了进来!!!
过了九九八十一年(miao)终于轮到他了
当然,还有一些front(取栈顶值),empty(判断是否空栈)等函数没讲,不过由于太水,请大家自行研究。
代码集合:
#include <cstdio>
const int MAXN=10086;
struct stack
{
int top;
int a[MAXN];
stack(){memset(a,0,sizeof(a)),top=0;}
bool empty()
{
return !top;
}
bool pop()
{
if(!top)return 0;
top--;
return 1;
}
void push(int x)
{
a[top++]=x;
}
int front()
{
return a[top];
}
}
————————————华丽的分割线————————————
end。。。