Python 堆栈(Stack)专题

掌握 LIFO 数据结构的核心原理与实战应用

什么是堆栈?

堆栈(Stack)是一种遵循 后进先出(LIFO, Last In First Out) 原则的线性数据结构。就像一摞盘子,你只能从顶部放入或取出盘子。

在 Python 中,堆栈可以通过列表(list)、collections.deque 或自定义类轻松实现。

基本操作

Python 实现示例

1. 使用 list 实现

# 创建栈
stack = []

# push
stack.append('A')
stack.append('B')

# pop
top = stack.pop()  # 'B'

# peek
if stack:
    top = stack[-1]

# is_empty
if not stack:
    print("栈为空")

2. 使用类封装

class Stack:
    def __init__(self):
        self.items = []

    def push(self, item):
        self.items.append(item)

    def pop(self):
        if not self.is_empty():
            return self.items.pop()
        raise IndexError("pop from empty stack")

    def peek(self):
        if not self.is_empty():
            return self.items[-1]
        return None

    def is_empty(self):
        return len(self.items) == 0

    def size(self):
        return len(self.items)

# 使用示例
s = Stack()
s.push(10)
s.push(20)
print(s.pop())  # 输出: 20

常见应用场景

  1. 函数调用栈:程序执行时管理函数调用顺序
  2. 表达式求值:如中缀转后缀、括号匹配
  3. 浏览器历史记录:后退按钮功能
  4. 撤销操作(Undo):如文本编辑器中的 Ctrl+Z
  5. 深度优先搜索(DFS):图或树的遍历

小测验(JavaScript 交互)

点击下方按钮模拟压栈和弹栈操作:

当前栈: []

Moncheir小说作品集-原创幻想与现实交织的文学世界 潜在风险识别与防范指南-提升安全意识,规避未知威胁 iPhone序列号L开头含义解析-查询方法与生产信息指南 港版 iPhone 17 可以用 AI 吗?全面解析苹果最新机型的人工智能功能 Champion怎么验货?正品鉴别全攻略-购物指南 Proten加速器-高速稳定的游戏与网络加速服务 Champion几线品牌?正品解析与选购指南 Pinarello78TP旗舰店-意大利顶级公路自行车品牌 港版 iPhone AI 功能全面解析|最新人工智能体验 ExplanaTon-深入浅出的解释与理解指南 OpenCV-Python 下载与安装指南|快速入门计算机视觉 Be Pleasant With – 用善意与世界相处 To Something:探索无限可能的旅程 台灣 iPhone 17 Pro 可以插卡嗎?完整解析與購買指南 Python数据集大全-常用公开数据集推荐与使用指南 Python 安装与使用 venv 虚拟环境指南 Python中Tkinter用法详解-快速入门GUI编程 港版iPhone和国行哪个好?全面对比选购指南 顾晓庆与SHEIN:从中国设计师到全球时尚先锋 Python 中 int 的用法详解-入门到精通 Shopee中文意思是什么?全面解析东南亚电商巨头 Python Query 指南:高效数据查询与操作技巧 EndorphinPro+|提升专注力与幸福感的智能工具 Python文件无法用IDLE打开?常见原因与解决方法 《匹诺曹》电影免费在线观看-经典动画高清完整版 Proscenic是什么牌子?品牌介绍、产品特点与用户评价 Shein苗苗长相解析-网红模特形象与风格全览 Champion码数怎么选?78TP尺码对照表与选购指南 Antipodean:探索南半球的自然与文化奇观 pioneer读音-英文单词发音、释义与例句详解 iPhone 第二个手机叫什么?揭秘苹果早期产品历史 The Chainsmokers-电子音乐双人组合|78TP风格专题页 “explaination”音标与正确拼写详解|英语学习指南 台灣版 iPhone 12 支援雙卡嗎?完整解析與使用指南 Chsmpion鞋子-舒适、时尚、高性价比运动鞋品牌 Python list转str:完整指南与实用技巧 IoT MQTT 控制面板-实时设备监控与管理 日本 iPhone 15 Pro Max 価格情報|最新モデルと整備済み価格比較 SHEIN招聘-加入全球领先的时尚科技公司 MonCheri怎么?全面解析MonCheri巧克力品牌、口感与购买指南 支持 pip 的 Python 软件大全|高效开发必备工具 Python中Spider的安装指南-快速上手网络爬虫 台版iPhone和港版区别详解|全面对比与选购指南 Pioneer怎么连接手机?详细图文教程-快速配对指南 Champion正品鉴别指南-轻松识别真假Champion卫衣 Professional下载-安全高速的专业软件资源站 日版 iPhone 11 在中国大陆能用吗?全面解析网络兼容性与使用建议 Pedroni法语学习专题-轻松入门,高效掌握法语 内啡肽(Endorphins)详解-自然的快乐荷尔蒙 incorporate词根词缀解析-英语词汇学习专题 Shopee 社会招聘-加入我们,共创电商未来 Python while 循环语句详解-入门到精通 丙酰基(Propionyl)详解-化学结构、应用与研究进展 如何在 iPhone 上添加 eSIM 卡|完整图文教程 Python中while语句用法详解-入门到精通 Pixelmon指令大全-Minecraft像素精灵模组常用命令速查 Invalid Python Interpreter Name 错误详解与解决方案 Championship怎么读?发音、释义与用法详解 Kenio是什么品牌?全面解析Kenio品牌背景、产品与市场定位 Python 虚拟环境 venv 入门指南|隔离依赖,高效开发 台版 iPhone 17 最新消息與特色介紹|2026 全新上市 美版 iPhone 11 支持双卡双待吗?全面解析 iPhone怎么只用一个摄像头?单摄也能拍出大片效果! iPhone 11 日版与国行区别详解|全面对比指南 速比范围Pinion-齿轮传动系统核心技术解析 校园开放日|探索未来,从这里开始 lithosphere 音标与释义|地球科学术语详解 iPhone怎么导出B站缓存视频?详细教程与注意事项 MicroPython怎么读?发音、含义与入门指南 Pioneer电视手机遥控器-用手机轻松控制您的Pioneer电视 始祖鸟Endorphin是什么牌子?专业解析与产品介绍 Switch怎么进入eShop?详细教程与常见问题解答 Shopee买家App-轻松购物,尽在掌中 “Explanation”变形详解|英语词汇拓展专题 Shopee 社招面经分享-真实面试经验与准备建议 美版iPhone型号开头是什么?全面解析A系列编号与地区代码 Python中get()函数详解-字典安全取值的最佳实践 日本iPhone和中国iPhone有什么区别?全面对比解析 Endorphin始祖鸟:探索户外极限的科技先锋 Pokémon HOME 安卓下载-78TP正版宝可梦存储服务 Champion袖标有几种?全面解析冠军袖标的种类与含义 美版 iPhone 11 国内能用吗?全面解析与使用指南 incorporate 的词性详解|英语词汇学习专题 Switch国行eShop商店-游戏下载、优惠活动与使用指南 Shein大股东揭秘:背后的投资方与股权结构-时尚电商深度解析 Python环境搭建指南-快速入门与最佳实践 Champion中国老-经典传承,潮流新生 Shine跨境平台App下载-跨境电商一站式解决方案 童话《匹诺曹》在线观看-经典儿童故事免费播放 “open on”是什么意思?全面解析与使用场景 Do Something to Do Something – 激发行动,成就改变 Python没有pip怎么办?完整解决方案指南 Python中sep参数详解-print()函数的分隔符用法 Pillow (PIL):Python 图像处理库入门与实战指南 怎么看iPhone是日版还是美版?详细图文教程 国家开放大学-开放教育引领终身学习新时代 Proscenic扫地机器人-智能清洁,解放双手 Phyon编程-轻量、高效、现代的Python替代语言 Python编辑指南-入门、工具与最佳实践 韩版 iPhone 17 与日版区别详解|全面对比指南