我最近开始研究如何在 Python 中实现各种数据结构,以便使我的代码更加高效。在研究列表和双端队列的工作原理时,我发现当我想要移位和取消移位时,可以将时间从列表中的 O(n) 减少到双端队列中的 O(1)(列表被实现为固定长度数组,这些数组具有每次在前面插入某些内容时都会完全复制,等等...)。我似乎找不到双端队列如何实现的细节,以及它的缺点和缺点的细节。列表。有人可以帮我解答这两个问题吗?
https://github.com/python/cpython/blob/v3.8.1/Modules/_collectionsmodule.c
A dequeobject
由一个双向链表组成block
nodes.
所以是的,一个deque
正如另一个答案所暗示的那样,是一个(双向)链表。
详细说明:这意味着 Python 列表更适合随机访问和固定长度操作(包括切片),而双端队列对于从末尾推送和弹出内容更有用,索引(有趣的是,但不包括切片)可能,但比列表慢。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)