【发布时间】:2014-02-27 00:02:40
【问题描述】:
所以最近,我读了一篇文章,向我展示了如何实现一个只有一个指针字段的双向链表,即像一个单链表。与将 XOR 上一个和下一个地址存储在单个字段中有关。我不明白这如何帮助我们前后遍历?谁可以给我解释一下这个?我已经阅读了here 上的文章。谁能给我解释一下?更详细一点?以及 XOR 与这些地址有何关系。
【问题讨论】:
-
下面有几个答案很好地解释了这一点,所以我将跳过它并简单地评论一件需要注意的事情。存在不支持的平台(事实上,如果指针值不确定或不是专门来自“正确的”分配函数或
&-operator)。它通常是作为一种节省宝贵字节的方式来完成的,通常是在 ASM 级别。今天很少(通常是嵌入式)现在需要这样的东西,并且几乎不会使代码难以阅读和维护。好技巧,好知识,现在忘了它=P。 -
啊,是的。我意识到这是一种旧的、未使用的方法。问题是,我在某处读过这个作为面试问题。很好奇它是如何工作的。当然,今天我们没有必要挤在这么小的空间里。然而,这个想法是创新的,纯粹是为了我的理解。
标签: c doubly-linked-list