嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!
我的博客:yuanManGan
我的专栏:C++入门小馆 C言雅韵集 数据结构漫游记 闲言碎语小记坊 题山采玉
目录
栈的认识
静态模拟实现栈
创建栈
入栈
出栈
查询栈顶元素
查询栈帧元素个数
判空
代码测试
stack
栈的认识
栈是一个访问受限线性表,它只允许从上端插入上端删除。类似于枪的弹夹。先来认识一下栈中的名词吧。
空栈:顾名思义,栈里面没有元素。
栈顶元素:在栈最上面的元素。
出栈,入栈:在栈顶上进行增加和删除。
静态模拟实现栈
在了解了静态实现顺序表之后来实现栈应该是很轻松的。
就来简单模拟一下吧!
创建栈
我们用一个很大的数组来存储栈里面的元素,同样的在下标为0 的位置不存储任何信息,用n来记录栈中元素的个数。
int st[N];
int n;
入栈
将n+1然后再这个下标处存储入栈元素
void push(int x)
{
st[++n] = x;
}
出栈
该功能特别简单只需要n--即可,有人问为什么不将n下标位置的数据清空呢,我们只访问n之前的元素,根本不会访问到那个已经删除的元素。
void pop()
{
n--;
}
查询栈顶元素
int top()
{
return st[n];
}
查询栈帧元素个数
int size()
{
return n;
}
判空
bool empty()
{
return n == 0;
}
代码测试
stack
stack是C++STL库里面的一个容器,可以实现栈。
里面的库函数和上述模拟实现的一样。不过要包含头文件。
stack的使用方法和vector一样。就不多解释了。