常识小站
第二套高阶模板 · 更大气的阅读体验

栈的基本操作:像叠盘子一样的数据结构

发布时间:2025-12-15 11:10:02 阅读:196 次

你有没有在食堂见过洗好的盘子一个一个往上叠的场景?最上面的那个总是最先被拿走,而最下面的那个得等到所有上面的盘子都被取完才能动。这种“后进先出”的逻辑,在计算机里有个名字——

什么是栈?

栈是一种特殊的线性数据结构,只允许在一端进行操作,这一端叫“栈顶”,另一端叫“栈底”。就像你往箱子里放书,只能从上面放和取,下面的书不拿出来,就碰不到更早放进去的。

栈的几个基本操作

最常见的操作有三个:入栈、出栈、查看栈顶。

入栈(Push):把一个元素放到栈顶。比如你今天买了本书,顺手放在桌上已有的几本上面,这本书就成了当前最“新”的那一本。

出栈(Pop):把栈顶的元素拿走。就像你急着找最底下那本旧账本,就得一本本把上面的搬开,每拿走一本就是一次出栈。

查看栈顶(Peek 或 Top):不拿走元素,只是看看现在最上面是谁。好比你瞥一眼最上面那本书的封面,确认是不是你要的,但并不真动手去翻。

用代码简单演示一下

假如我们用 Python 来模拟一个栈,其实可以用列表来实现:

# 创建一个空栈
stack = []

# 入栈:append 相当于 push
stack.append("第一本书")
stack.append("第二本书")
stack.append("第三本书")

# 查看栈顶
print("当前最上面:", stack[-1])  # 输出:第三本书

# 出栈:pop 移除并返回最后一个元素
top_item = stack.pop()
print("拿走了:", top_item)  # 输出:第三本书

# 再看栈顶
print("现在最上面:", stack[-1])  # 输出:第二本书

这段代码就像你在整理书桌,每次加书都放最上,拿书也只从最上面取。

生活中哪些地方用了栈的思想?

浏览器的“返回”按钮就是个典型例子。你从首页点到商品页,再跳到详情页,每一步都被压进一个“页面栈”。点返回时,系统就把你刚才经过的页面一个个从栈顶弹出来,顺序刚好倒过来。

还有撤销操作(Ctrl+Z)。你写文档时删了一段字,按一次撤销就恢复最近一次操作,再按又恢复上一次——这背后也是栈在记着你每一步动作。

栈不大,但挺管用。它不复杂,却支撑着很多日常功能的运行。理解它的基本操作,就像明白为什么盘子要那样叠——不是随便堆的,是有讲究的。”}