鉴于Python对象只是对实际内存对象的引用并且
无法检索对象的内存地址。
是否可以在Python中实现XOR链表?如果是的话怎么办?
您无法在 Python 中构建 XOR 链表,因为 Python 不允许您弄乱指针中的位。
无论如何你都不想实现它——这是一个肮脏的把戏,它使你的代码难以理解,却没有什么好处。
如果您担心内存问题,那么使用每个节点超过 1 个元素的双向链表几乎总是更好,例如数组链表。
例如,XOR 链表每个项目花费 1 个指针,加上项目本身,而每个节点有 16 个项目的双向链表则每 16 个项目花费 3 个指针,或每个项目 3/16 个指针。 (额外的指针是记录节点中有多少项的整数的成本)小于 1。在 Python 中存在额外的开销,但它仍然效果更好。
除了节省内存之外,您还可以获得局部性优势,因为节点中的所有 16 个项目在内存中彼此相邻。迭代列表的算法会更快。
请注意,异或链表还要求您在每次添加或删除节点时分配或释放内存,这是一项昂贵的操作。使用数组链表,您可以通过允许节点不完全满来做得更好。例如,如果您允许 5 个空项目槽,那么最坏情况下您只能在每 3 次插入或删除时分配或释放内存。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)