删除p所指的结点时需修改指针

img

2、 在双向链表存储结构中,删除p所指的结点时需修改指针
这两个双链表的操作可以画个图吗,总感觉有点不对劲,

你把可以把它理解为牵着狗的一条链子,然后你把中间某个链扣去掉,然后再接回链子。
就是你要删掉P点 ,那么P点的前一个节点,指向下一个节点的指针是不是要指向P 点的下一个节点呢

p的前一个节点q <--- p ---> p的后一个节点b

就是 p->rlink 指针是指 q节点
就是 p->link 指针是指 b节点

好啦,现在前后节点都找到了 q b , 我们把它们链接起来

就是 q->link 原来p的前一个节点的link指针就指向 b 了 这里就是 (p->rlink)->link
就是 b->rlink 原来p的后一个节点的rlink指针就指向 p 了 这里就是 (p->link)->rlink

所以

q = p->rlink;
b= p->link;

则链接有:
q->link = b;
b->rlink= q;

把关系带入代替q、b

(p->rlink)->link = p->link;
(p->link)->rlink = p->rlink;