Python基础 - Python队列与堆栈

Python队列与堆栈

Posted by 王富杰 on Friday, February 21, 2025

一、队列与堆栈

队列和堆栈是两种很常见的数据结构,都是用来存储数据的。队列可以理解为一个排队的队伍,先进入队伍的先排到,即fist in fist out,简写为FIFO。但是堆栈是后进先出,即last in first out, 简写为LIFO。

二、列表实现队列

我们可以使用列表来模拟实现队列这种结构。首先我们模拟入队操作,入队可以使用列表的insert()功能实现,也可以使用append()实现。注意如果使用insert()应该每次把数据插到队尾。

>>> l = []
>>> l.append("张三")
>>> l.append("李四")
>>> l.append("王五")
>>> print(l)
['张三', '李四', '王五']

如上所示,张三第一个入队,位于队首。接下来我们模拟出队操作,那也应该是张三先出队。因此我们可以使用pop()模拟出队。

>>> l.pop(0)
'张三'
>>> l.pop(0)
'李四'
>>> l.pop(0)
'王五'
>>> print(l)
[]

这时候我们就模拟了列表,先进去的的先出俩。

三、列表实现堆栈

堆栈的特点是后进先出。首先我们先模拟入栈操作,入栈和队列是一样的。

>>> l = []
>>> l.append("张三")
>>> l.append("李四")
>>> l.append("王五")
>>> print(l)
['张三', '李四', '王五']

但是出栈就不一样了,应该是王五先出。

>>> l.pop()
'王五'
>>> l.pop()
'李四'
>>> l.pop()
'张三'

我们通用使用pop()模拟了出栈操作,只不是pop弹出的不再是队首,而是队尾了。

「真诚赞赏,手留余香」

WangFuJie Blog

真诚赞赏,手留余香

使用微信扫描二维码完成支付