当前位置: 首页 > 面试题库 >

Python中的双端队列如何实现?何时比列表差?

耿俊彦
2023-03-14
问题内容

我最近开始研究如何在Python中实现各种数据结构,以使我的代码更高效。在研究列表和双端队列的工作方式时,我发现,我想转移和取消移位,可以将列表中的O(n)减少到双端队列的O(1)的时间(列表实现为具有每次在前面插入东西时都可以完全复制,等等。)。我似乎找不到关于如何实现双端队列的细节,以及其缺点与列表的细节。有人可以启发我解决这两个问题吗?


问题答案:

https://github.com/python/cpython/blob/v3.8.1/Modules/_collectionsmodule.c

Adequeobjectblock节点的双向链接列表组成。

因此,deque是的,另一个答案表明,a是一个(双链接)列表。

详细说明:这意味着Python列表对于随机访问和固定长度的操作(包括切片)要好得多,而双端队列在将内容推入和弹出两端时更有用,因为索引(但不是切片)可能但比列表慢。



 类似资料:
  • 问题内容: 抱歉,下面是我在这里遇到的一个问题:在这里,我试图运行此方法以从双面队列(双端队列)中删除通用值(EltType),但是我一直遇到错误,我两次调用insertFirst ,然后将值“ 3”插入数组两次,然后,当我运行removeFirst时,它将打印出“ 3”一次,然后打印出“ Null”。有人可以帮我吗? 谢谢 :) 问题答案: 明显的问题是它永远不会改变。 将永远返回。现在,让我们

  • 本文向大家介绍JS中队列和双端队列实现及应用详解,包括了JS中队列和双端队列实现及应用详解的使用技巧和注意事项,需要的朋友参考一下 队列 队列 双端队列数据结构 应用 用击鼓传花游戏模拟循环队列 用双端对列检查一个词是否构成回文 生成 1 到 n 的二进制数 队列和双端队列 队列遵循先进后出(FIFO, 也称为先来先服务) 原则的. 日常有很多这样场景: 排队购票、银行排队等. 由对列的特性,银行

  • 问题内容: 如何在Python中检查双端队列是否为空? 问题答案: 如果是您的双端队列,请使用 如果双端队列包含任何项目并且为空,则将隐式转换为。

  • 问题内容: 当前的Go库不提供队列容器。为了实现一个简单的队列,我使用圆形数组作为基础数据结构。它遵循TAOCP中提到的算法: 以下是代码: 但是输出显然是错误的: 1是2是3是4是5是6是7是8是9是10是11是12是 11是12是0错误0错误0错误0错误0错误0错误0错误0错误0错误0错误0错误0错误 我认为我还需要一个领域来使代码正常工作。你有什么建议? 改进的代码有一个小的缺点:大小为n的

  • 本文向大家介绍C ++程序在STL中实现双端队列,包括了C ++程序在STL中实现双端队列的使用技巧和注意事项,需要的朋友参考一下 双端队列是一种队列数据结构,其中在两端(前端和后端)都执行插入和删除操作。可以在前后位置插入数据,也可以从前后位置删除数据。 算法 范例程式码 输出结果

  • 问题内容: 比较两个列表/集合并输出差异的最简单方法是什么?是否有任何内置函数可以帮助我比较嵌套列表/集? 输入: 预期产量: 问题答案: 因此,您需要两个项目列表之间的区别。 首先,我将每个列表列表变成一个元组列表,这样,由于元组是可哈希化的(列表不是),因此您可以将元组列表转换为一组元组: 然后可以进行设置: 编辑(由sdolan建议):您可以在一个列表中为每个列表完成最后两个步骤: 注意:是