双向链表的插入及删除图解

双向链表的插入及删除图解,第1张

第一步:首先找到插入位置,节点 s 将插入到节点 p 之前

第二步:将节点 s 的前驱指向节点 p 的前驱,即 s->prior = p->prior

第三步:将节点 p 的前驱的后继指向节点 s 即 p->prior->next = s

第四步:将节点 s 的后继指向节点 p 即 s->next = p

第五步:将节点 p 的前驱指向节点 s 即 p->prior = s

第一步:找到即将被删除的节点 p

第二步:将 p 的前驱的后继指向 p 的后继,即 p->prior->next = p->next

第三步:将 p 的后继的前驱指向 p 的前驱,即 p->next->prior = p->prior

第四步:删除节点 p 即 delete p

void insert_node(Node current_node, Node new_node){

new_node->next = current_node->next

current_node->next->prev = new_node

current_node->next = new_node

new_node->prev = current_node

}

给你看一下这个过程的图解(画得有点乱)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/7948289.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存