Python实现Stack

你好,我是悦创。

Python 中的栈结构是一种后进先出(LIFO, Last In, First Out)的数据结构,这意味着最后添加到栈中的元素将是第一个被移除的。栈通常用于解决涉及到反转、历史记录和撤销操作等问题。在 Python 中,你可以使用列表(list)来实现栈的功能,因为列表提供了在末端添加和删除元素的操作,这些操作的时间复杂度为 O(1)。

下面,我将介绍如何使用 Python 列表来实现一个基本的栈结构:

1. 创建栈

栈可以通过简单地初始化一个空列表来创建:

python 复制代码
stack = []

2. 压栈(Push)

向栈中添加元素称为"压栈"。你可以使用列表的 append() 方法来添加元素:

python 复制代码
stack.append(1)  # 压入元素 1
stack.append(2)  # 压入元素 2
stack.append(3)  # 压入元素 3

此时栈的内容是 [1, 2, 3],其中 3 是最后压入的元素。

3. 出栈(Pop)

从栈中移除元素称为"出栈"。你可以使用列表的 pop() 方法来移除最后一个添加的元素,并返回这个元素:

python 复制代码
print(stack.pop())  # 输出并移除元素 3
print(stack.pop())  # 输出并移除元素 2

每次 pop() 操作后,栈的顶部元素将被移除。

4. 查看栈顶元素

查看不移除栈顶元素可以通过索引访问实现,因为栈顶元素总是在列表的末尾:

python 复制代码
print(stack[-1])  # 输出当前栈顶元素,此例中为 1

5. 检查栈是否为空

判断栈是否为空可以通过检查列表长度:

python 复制代码
is_empty = not stack  # 如果列表为空,则 is_empty 为 True

示例:完整的栈操作

python 复制代码
stack = []
stack.append(1)
stack.append(2)
stack.append(3)

print(stack.pop())  # 输出 3
print(stack.pop())  # 输出 2
print(stack[-1])    # 输出 1,检查栈顶元素
print(stack.pop())  # 输出 1

print(not stack)    # 输出 True,栈为空

通过这个简单的介绍和示例,你现在应该对如何在 Python 中使用栈结构有了基本的了解。这只是栈的基础应用,你可以在此基础上进行扩展和修改,以满足不同的需求。

相关推荐
兵慌码乱2 小时前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析
python·sqlite·信号与槽·pyqt5·数据库设计·桌面应用开发·事务处理
金銀銅鐵4 小时前
[Python] 体验用欧几里得算法计算最大公约数的过程
python·数学
FreakStudio8 小时前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
用户0332126663679 小时前
使用 Python 从零创建 Word 文档
python
Csvn14 小时前
Python 两大经典坑点 —— 可变默认参数 & 闭包延迟绑定
后端·python
曲幽15 小时前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
用户5569188175316 小时前
#从脚本到独立程序:Python + Playwright 批量抓取的完整踩坑记录
python·自动化运维
兵慌码乱1 天前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析
python·opencv·计算机视觉·人机交互·手势识别·mediapipe·pyside2
luckdewei1 天前
FastAPI 资产管理系统实战:复杂 ORM 关联、Alembic 迁移与 N+1 查询优化
python