算法导论10.2-8 假设所有指针的值都可视为K位的整型数,且定义 x.np = x.next ^ x.prev 。注意要说明获取表头所需信息,并说明如何在该表上实现SEARCH,INSERT,DELETE操作。
对^操作,有 x^y^y=x。
表头 head.np = head.prev ^ head.next = NULL ^ head.next. 所以head.np 指向第二个元素。
SEARCH操作: //先比较前2个元素,再从第三个开始循环
if(head.value == x) return head;
if(head.np.value == x) return head.np;
node = head.np;//指向第二个
node_p = head;//指向第一个
while(node_next = node.np ^ node_p) // node.np = node_next ^ node_p 求第三个元素
{
if(node_next.value == x)