栈是一种先进后出(FILO,First In Last On)的线性结构。
用一个图片来表示一下栈。
可以将栈形象地用一个杯子来表示。
代码实现 定义如果仔细想想,栈和数组差不多,都是类似一个长条状,所以我们就可以用数组来模拟栈,但是,我们不知道栈顶的下标是多少,所以就需要一个变量来表示栈顶的下标,代码实现如下:
int a[100];//数组模拟栈 int top = 0;//栈顶指针遍历
我们已经知道栈顶的下标是多少,而且栈里的元素都是按顺序的,所以说输出就很简单了,代码实现如下:
void print(){ //输出函数
for(int i = 0; i < top; i++){
cout << a[i] << ' ';
}
}
压入元素
输出都来了,那么压入还会难吗?
我们知道,栈它是从上面压入元素,而且我们已经知道他的栈顶的下表,所以就可以很简单地用代码实现:
//压入栈底元素
void push(int x) //x为压入的元素
{
a[top++] = x;
}
弹出元素
有的时候,在使用栈的时候需要删除栈顶的元素,那么该如何实现呢?可以好好想一下,先不看代码。
其实,就只需要将栈顶的下表-1,就可以了,因为把上面的元素弹出只需要将栈顶变成栈顶下面的那个元素的下标就可以了,代码实现如下:
//弹出栈顶元素
void pop()
{
top--;
}
访问栈顶元素
在某些时候,我们需要访问栈顶的元素,所以代码实现如下:
//访问栈顶元素
int pop()
{
return a[top - 1];
}
注意,返回的时候必须是top-1。
那么栈的基本概念和实现方法都知道了,就留下来点个赞关注一下再走吧!
制作不易



