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 中使用栈结构有了基本的了解。这只是栈的基础应用,你可以在此基础上进行扩展和修改,以满足不同的需求。

相关推荐
衍生星球3 分钟前
【Java 语言】— 方法(方法定义、调用、参数、返回值、方法重载)
java·开发语言·方法
CodeGL8 分钟前
16、Python Web开发
开发语言·前端·python
喵了几个咪10 分钟前
GoWind UBA 拆解:把 Doris UNIQUE KEY 翻译成 ClickHouse——读数正确性对齐实录
开发语言·后端·clickhouse·微服务·golang·gowind
FRing0316 分钟前
JavaScript入门到精通二十九(内置构造函数(Object、Array))
开发语言·前端·javascript
syagain_zsx19 分钟前
ODB 与 MySQL:C++ 里的 ORM 实践(类即表、事务铁律与查询封装)
开发语言·数据库·c++·mysql·工具库·1024程序员节
小嘉丶学长22 分钟前
Day08 · 字符串(二)
服务器·开发语言·python·学习·1024程序员节
BD_Marathon27 分钟前
【Python】列表推导式
python
2501_9481226336 分钟前
Qs 跨端三方库仓颉适配全流程
python·react native·django·tornado
萌动的小火苗39 分钟前
MQTT的QoS0、QoS1、QoS2有什么区别?
开发语言·网络·python·php·信息与通信
买房动力十足40 分钟前
秒杀商城 + AI 运营:Lua 防超卖、MQ 削峰,AI 负责选品和策划
开发语言·人工智能·lua