LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 322|回复: 0

用列表实现堆栈和队列

[复制链接]
发表于 2023-12-27 17:30:57 | 显示全部楼层 |阅读模式

用列表实现堆栈

通过列表方法可以非常容易地将列表作为栈来使用,最后添加的元素将最先被提取(“后进先出”)。 要向栈顶添加一个条目,请使用 append()。 要从栈顶提取一个条目,请使用 pop(),无需显式指定索引。 例如:


stack = [3, 4, 5]
stack.append(6)
stack.append(7)
stack
[3, 4, 5, 6, 7]
stack.pop()
7
stack
[3, 4, 5, 6]
stack.pop()
6
stack.pop()
5
stack
[3, 4]


用列表实现队列

列表也可以用作队列,最先加入的元素,最先取出(“先进先出”);然而,列表作为队列的效率很低。因为,在列表末尾添加和删除元素非常快,但在列表开头插入或移除元素却很慢(因为所有其他元素都必须移动一位)。

实现队列最好用 collections.deque,可以快速从两端添加或删除元素。例如:


from collections import deque
queue = deque(["Eric", "John", "Michael"])
queue.append("Terry")           # Terry arrives
queue.append("Graham")          # Graham arrives
queue.popleft()                 # The first to arrive now leaves
'Eric'
queue.popleft()                 # The second to arrive now leaves
'John'
queue                           # Remaining queue in order of arrival
deque(['Michael', 'Terry', 'Graham'])


您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表