首页 > 代码库 > 用单链表通过异或思想来实现双链表的功能
用单链表通过异或思想来实现双链表的功能
参考大神博客:http://blog.csdn.net/aptx704610875/article/details/8028023
说明:主要的思想是通过异或的方式来实现的,基本的思想是通过时间来换空间的。
比如是两个数之间的交换,就是a,b
只要将
a=a+b;
b=a-b;
a=a-b;
然后就是异或,我们也可以将他们进行上述的异或操作,因为异或操作有一系列的性质是可用的。
一系列的性质,相当于加法,将结果保存在其中。
1、如果我们知道头地址,如第一个节点地址为1000,那么->next便可得1001,令1000^(1001->next)可得1002, 1001^(1002->next)可得1003,以此类推
2、如果我们知道末尾结点地址和倒数第二个结点地址,那么令1004^(1003->next)可得1002, 令1003^(1002->next)可得1001,以此类推
用单链表通过异或思想来实现双链表的功能
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。