如何在Python中实现异或链表?

2023-12-03

鉴于Python对象只是对实际内存对象的引用并且 无法检索对象的内存地址。

是否可以在Python中实现XOR链表?如果是的话怎么办?


您无法在 Python 中构建 XOR 链表,因为 Python 不允许您弄乱指针中的位。

无论如何你都不想实现它——这是一个肮脏的把戏,它使你的代码难以理解,却没有什么好处。

如果您担心内存问题,那么使用每个节点超过 1 个元素的双向链表几乎总是更好,例如数组链表。

例如,XOR 链表每个项目花费 1 个指针,加上项目本身,而每个节点有 16 个项目的双向链表则每 16 个项目花费 3 个指针,或每个项目 3/16 个指针。 (额外的指针是记录节点中有多少项的整数的成本)小于 1。在 Python 中存在额外的开销,但它仍然效果更好。

除了节省内存之外,您还可以获得局部性优势,因为节点中的所有 16 个项目在内存中彼此相邻。迭代列表的算法会更快。

请注意,异或链表还要求您在每次添加或删除节点时分配或释放内存,这是一项昂贵的操作。使用数组链表,您可以通过允许节点不完全满来做得更好。例如,如果您允许 5 个空项目槽,那么最坏情况下您只能在每 3 次插入或删除时分配或释放内存。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Python中实现异或链表? 的相关文章

  • SQLAlchemy 通过关联对象声明式多对多自连接

    我有一个用户表和一个朋友表 它将用户映射到其他用户 因为每个用户可以有很多朋友 这个关系显然是对称的 如果用户A是用户B的朋友 那么用户B也是用户A的朋友 我只存储这个关系一次 除了两个用户 ID 之外 Friends 表还有其他字段 因此
  • 如何在flask中使用g.user全局

    据我了解 Flask 中的 g 变量 它应该为我提供一个全局位置来存储数据 例如登录后保存当前用户 它是否正确 我希望我的导航在登录后在整个网站上显示我的用户名 我的观点包含 from Flask import g among other
  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • PyUSB 1.0:NotImplementedError:此平台不支持或未实现操作

    我刚刚开始使用 pyusb 基本上我正在玩示例代码here https github com walac pyusb blob master docs tutorial rst 我使用的是 Windows 7 64 位 并从以下地址下载 z
  • 如何从网页中嵌入的 Tableau 图表中抓取工具提示值

    我试图弄清楚是否有一种方法以及如何使用 python 从网页中的 Tableau 嵌入图形中抓取工具提示值 以下是当用户将鼠标悬停在条形上时带有工具提示的图表示例 我从要从中抓取的原始网页中获取了此网址 https covid19 colo
  • SQLALchemy .query:类“Car”的未解析属性引用“query”

    我有一个这里已经提到的问题https youtrack jetbrains com issue PY 44557 https youtrack jetbrains com issue PY 44557 但我还没有找到解决方案 我使用 Pyt
  • Spark KMeans 无法处理大数据吗?

    KMeans 有几个参数training http spark apache org docs latest api python pyspark mllib html highlight kmeans pyspark mllib clus
  • 使用 Tkinter 显示 numpy 数组中的图像

    我对 Python 缺乏经验 第一次使用 Tkinter 制作一个 UI 显示我的数字分类程序与 mnist 数据集的结果 当图像来自 numpy 数组而不是我的 PC 上的文件路径时 我有一个关于在 Tkinter 中显示图像的问题 我为
  • AWS EMR Spark Python 日志记录

    我正在 AWS EMR 上运行一个非常简单的 Spark 作业 但似乎无法从我的脚本中获取任何日志输出 我尝试过打印到 stderr from pyspark import SparkContext import sys if name m
  • 绘制方程

    我正在尝试创建一个函数 它将绘制我告诉它的任何公式 import numpy as np import matplotlib pyplot as plt def graph formula x range x np array x rang
  • 如何在Python中获取葡萄牙语字符?

    我正在研究葡萄牙语 角色看起来很奇怪 我怎样才能解决这个问题 代码 import feedparser import random Vou definir os feeds feeds conf feedurl http pplware s
  • IO 密集型任务中的 Python 多线程

    建议仅在 IO 密集型任务中使用 Python 多线程 因为 Python 有一个全局解释器锁 GIL 只允许一个线程持有 Python 解释器的控制权 然而 多线程对于 IO 密集型操作有意义吗 https stackoverflow c
  • 在f字符串中转义字符[重复]

    这个问题在这里已经有答案了 我遇到了以下问题f string gt gt gt a hello how to print hello gt gt gt f a a gt gt gt f a File
  • 如何在Python中对类别进行加权随机抽样

    给定一个元组列表 其中每个元组都包含一个概率和一个项目 我想根据其概率对项目进行采样 例如 给出列表 3 a 4 b 3 c 我想在 40 的时间内对 b 进行采样 在 python 中执行此操作的规范方法是什么 我查看了 random 模
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 为字典中的一个键附加多个值[重复]

    这个问题在这里已经有答案了 我是 python 新手 我有每年的年份和值列表 我想要做的是检查字典中是否已存在该年份 如果存在 则将该值附加到特定键的值列表中 例如 我有一个年份列表 并且每年都有一个值 2010 2 2009 4 1989
  • Conda SafetyError:文件大小不正确

    使用创建 Conda 环境时conda create n env name python 3 6 我收到以下警告 Preparing transaction done Verifying transaction SafetyError Th
  • 如何计算 pandas 数据帧上的连续有序值

    我试图从给定的数据帧中获取连续 0 值的最大计数 其中包含来自 pandas 数据帧的 id date value 列 如下所示 id date value 354 2019 03 01 0 354 2019 03 02 0 354 201
  • 使用其构造函数初始化 OrderedDict 以便保留初始数据的顺序的正确方法?

    初始化有序字典 OD 以使其保留初始数据的顺序的正确方法是什么 from collections import OrderedDict Obviously wrong because regular dict loses order d O

随机推荐

  • Crystal Report 抛出“无法打开连接”。仅在回发时

    我使用 拉 方法创建了一个 Crystal Report 以从 SQL Server Express 获取数据 我将报告导出为 pdf 它工作正常 但仅限于页面加载 每当我尝试在回发时导出报告时 都会收到此错误 Failed to open
  • 在 VS 2010 中的 Windows 窗体之间传递变量

    我有两种形式 表单 1 允许用户从下拉组合框中选择一名员工 然后 该员工将被传递到表格 2 用户可以在其中输入有关该员工的附加信息 然后该数据将被传递到 SQL 表中 在表格 1 上我有 Dim ChangeJobInfo As New F
  • 如何将 gridstack.js 与 Angular6 项目一起使用

    我正在开发一个 Angular6 项目 我需要使用 gridstack js 我应该如何在这个版本的项目中使用它 我检查过像 gridster 这样的库 但它们不支持嵌套功能 我需要与 gridstack 提供的功能相同的功能以及嵌套支持
  • XSLT - 删除所有属性

    非常简单的问题 没有找到这个问题的确切答案 希望看到没有属性轴的 XSLT 1 0 如果可能的话也希望看到其他的 我正在使用 python 的 lxml 库 它并没有真正赶上那些东西 您的解决方案应该可以正常工作 但还有一种更简单的方法 只
  • 使用 Python 读取带有日期对象和浮点数的逗号分隔文件

    我有一个文件 其中的条目看起来像 2013 12 11 23 00 27 003293 PAMWV 291 R 005 8 M A 36 2013 12 11 23 00 28 000295 PAMWV 284 R 005 5 M A 3F
  • 示例套接字应用程序不起作用

    我正在学习java net并尝试制作一个简单的应用程序 这是代码 EDIT 我的错 抱歉 但主要问题仍然存在 这是更正后的代码 public static void main String args try Socket s new Soc
  • 从列表链接到实体

    我有一个咨询页面 其中列出了数据存储区中的咨询 列表循环是这样的 for consult in consults tr td a href consults consult consult date a td td consult cons
  • 在按钮操作上传递参数:@selector

    我想将动态生成的按钮中的电影 url 传递给 MediaPlayer button addTarget self action selector buttonPressed withObject speakers mp4 objectAtI
  • OCP(开闭原则)与IoC(控制反转)有何关系?

    我能想到的一个例子是模板模式 它 是一种执行 IoC 的方法 也是 OCP 的一个例子 因为在模板模式中 我们定义了不能被子类更改的基本算法 但可以覆盖该算法继承的步骤方法 所以将来如果我们 想要更改某个步骤的实现 我们可以创建另一个子类并
  • Swift coreData - 格式化日期并在谓词中使用它

    H 我有一个名为 Agendadate 的实体和一个名为 AgendaEvent 的实体 AgendaEvent 与 AgendaDate agendaDates 具有多对多关系 在我的 AgendaDate 中 我有一个对象日期 日期类型
  • 带有比较运算符的布尔表达式的 typeof

    if typeof foo undefined Now we know that foo is defined we are good to go The typeof评估为true or false基于变量是否foo已定义或未定义 但是
  • 将控件数组添加到 aspx 页面

    我正在尝试将控件数组添加到 aspx 页面 后面是 C 代码 这些是类似的控件 不同字段的搜索条件 但具有相同的值 下拉控件值当前在 Page Load 方法中设置 如下所示 protected void Page Load object
  • C# 中的 [....] 是什么

    我在一些 Net Framework 代码中遇到了这个问题 我以前从未见过它 有人知道这意味着什么吗 switch msgFlags case Message lt never seen this before do some stuff
  • 在列表中使用 .index 时,仅返回它第一次出现在数组中的时间

    sentence ask not what your country can do for you ask what you can do for your country sentList sentence split print sen
  • C++ 为 POD 对象赋值 [重复]

    这个问题在这里已经有答案了 所以我读到了普通旧数据类 POD 并决定让我的结构 POD 来保存数据 例如 我有 struct MyClass int ID int age double height char 8 Name 显然 要为结构体
  • 在 C# 中在服务器上使用 StreamWriter

    我尝试使用以下代码写入远程计算机 StreamWriter remoteMachine admin fileName 我收到以下错误登录失败 用户名未知或密码错误 我得到了用户名 域名和密码 我怎样才能用凭据写信 如果我已经在本次会话中访问
  • Google 的 OpenIDConnect 返回无法解析的 Base64 令牌

    作为理解 OpenIDConnect 的练习 我试图按照本指南在我的网络应用程序中使用 Google 进行身份验证 问题是我无法读取 Google 发送到我的应用程序的令牌 gt var bytes Convert FromBase64St
  • XMLHTTPRequest 响应标头中不包含 Location 字段

    我试图修改 adblockplus 代码以进行测试 我正在修改代码以在 URL 上发送 http get 请求并从响应中获取最终 URL 我尝试使用以下代码 但响应在标头响应中不包含位置字段 我是在 Firefox 扩展中执行此操作 所以我
  • 将 DateTimeindex 转换为仅包含年、小时和日,而不包含时间信息

    我有一个带有索引的数据框 该索引还包含小时 秒 但我只想它包含日期作为年 月 日 索引是否有可能仍然是 DateTimeIndex 但只包含年 月 日 当前索引如下所示 my index DatetimeIndex 2017 08 25 2
  • 如何在Python中实现异或链表?

    鉴于Python对象只是对实际内存对象的引用并且 无法检索对象的内存地址 是否可以在Python中实现XOR链表 如果是的话怎么办 您无法在 Python 中构建 XOR 链表 因为 Python 不允许您弄乱指针中的位 无论如何你都不想实