异或链表

✍ dations ◷ 2025-08-17 23:12:23 #数据结构,二进制算术

异或链表(英语:XOR linked list)是数据结构里面的一种链式存储结构,可以在降低空间复杂度的情况下达到和双向链表一样的目的,使得在任何一个结点都能方便地访问它的前驱结点和后继结点。

普通双向链表的每个结点有三个域 ,分别存储着前一个结点的地址、后一个点的地址,以及数据

 ...  A       B         C         D         E  ...          –>  next –>  next  –>  next  –>          <–  prev <–  prev  <–  prev  <–

异或链表通过异或操作(这里用⊕表示)把前一个结点的地址和后一个结点的地址变成一个地址

 ...  A         B               C                D            E  ...          <–>  A⊕C     <->    B⊕D     <->      C⊕E  <->        link(B) = addr(A)⊕addr(C), link(C) = addr(B)⊕addr(D), …

当从左往右遍历的时候,如果当前结点是C,指针域是内容是B⊕D,通过和前一个结点B的地址做异或操作就能得到下一个结点D的地址,如此重复便能遍历整个链表。

相关

  • 六硼化镧六硼化镧是一种无机化合物,化学式为LaB6。它是一个超导体,相变温度只有0.45 K。六硼化镧可由镧或氢化镧粉末和无定形硼粉在氢气中高温加热得到。硼还原氧化镧也能得到六硼化镧
  • 丨部,是为汉字索引中的部首之一,康熙字典214个部首中的第二个(一划的则为第二个)。就繁体和简体中文中,丨部归于一划部首。丨部只以中间为部字。且无其他部首可用者将部首归为丨
  • 西部区 (乌干达)西部区是非洲中部国家乌干达的四个用作行政用途的地理区之一,首府是姆巴拉拉,截至2010年7月下分26区,该区面积49,599平方公里,2002年人口6,417,449。布伊奎区 · 布科曼辛比区
  • 靴子靴是一种鞋类,穿着于脚上并最少掩盖脚掌、足踝,可伸展至小腿甚至膝盖。靴可有各种不同的高度、颜色、物料及样式,大部分有明显的鞋跟。靴原是一种为工作而设的鞋类。设计作保护
  • 佩雷菲特佩雷菲特是瑞士的一个镇,位于该国中西部,由伯恩州负责管辖,面积8.57平方公里,海拔高度600米,2011年人口464,四成人口信奉基督教,人口密度每平方公里54人。
  • 乌德盖人乌德盖人(俄语:Удэгейцы)是生活在黑龙江支流的乌苏里江东岸、东至日本海沿岸的民族,今俄罗斯滨海边疆区和哈巴罗夫斯克边疆区。他们自称“乌德盖”,意为“林中人”,在清朝
  • CrunchyrollCrunchyroll,简称CR,是美国的一家提供东亚相关流媒体影视服务和国际交流社区的网站。于2006年对外宣称由大学生成立,因架站站长shinji喜欢吃寿司,遂命名“Crunchyroll”;实际上这
  • 弗拉迪米尔·彼得·柯本弗拉迪米尔·彼得·柯本,“柯本”又译“科本”(德语:Wladimir Peter Köppen,俄语:Владимир Петрович Кёппен;1846年9月25日-1940年6月22日),德国裔气象学家、
  • 谢秋收谢秋收(越南语:Tạ Thu Thâu,1906年5月5日-1945年9月),越南共产主义者、托洛茨基主义者。他是越南托派的领导人。谢秋收出生在龙川省安富总新平村(今属同塔省垃圩县垃圩市镇),家中贫
  • 海鸟粪海鸟粪(Guano)又称鸟粪石,是海鸟、蝙蝠或海豹排泄物与动植物残体混杂而成的一种细颗粒混合物。作为一种粪肥,鸟粪是一种高效肥料,因为它含有极高的氮,磷和钾含量:植物生长所必需的