一、队列与堆栈
队列和堆栈是两种很常见的数据结构,都是用来存储数据的。队列可以理解为一个排队的队伍,先进入队伍的先排到,即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弹出的不再是队首,而是队尾了。
「真诚赞赏,手留余香」
真诚赞赏,手留余香
使用微信扫描二维码完成支付
