双向循环链表防断裂下的指针指向

已知有一个带有表头结点的双向循环链表L,结点结构为

prevdatanext

其中,prev和next分别是指向其直接前驱和直接后继结点的指针。现要删除指针p所指的结点,正确的语句序列是(        )。

A.p->next->prev=p->prev;p->prev->next=p->prev;free(p);

B.p->next->prev=p->next;p->prev->next=p->next;free(p);

C.p->next->prev=p->next;p->prev->next=p->prev;free(p);

D.p->next->prev=p->prev;p->prev->next=p->next;free(p);

双向循环链表最重要的是防止出现链表断裂的情况

本题讲到的结点结构为:

prevdatanext
prev的是指向其直接前驱的指针,next是指向后继结点的指针

本题要删除指针p所指的结点,那么可以这么画图理解:

在删除一个结点的时候,需要把前后两个结点连接起来。

  1. 把前驱结点的next指针指向被删除结点的后继结点。
  2. 再把后继结点的prev指针去指向被删除结点的前驱结点。
  3. 只有这样才能使当前被删除结点的两端的结点去连接上,从而防止出现链表断裂的情况。

根据题目的A选项,p->next->prev=p->prev;p->prev->next=p->prev;free(p);

       先看这里面的p->next->prev=p->prev,它的意思是p的后继结点的prev指针应该指向的是p的前驱结点,因此也排除了B和C,B和C前面这部分都写错。

        那么再看A选项里后面的p->prev->next=p->prev,然而p的前驱结点的next指针应该指向p的后继结点,因此A这里写错。

        故选D,正确的应该为p->next->prev=p->prev;p->prev->next=p->next;free(p);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/492472.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

教你 3 分钟用 Hexo 建立一个纯静态、高性能的个人博客

只要会使用命令行,执行简单的命令。那么,用 Hexo 建立一个个人博客的过程,称得上是轻松愉快且简单! 我会以 Mac 操作系统作为例子,因为在 Mac 上实现这一切更为简单,因为 Mac 操作系统的命令行环境相对来说…

音视频数字化(数字与模拟-电影)

针对电视屏幕,电影被称为“大荧幕”,也是娱乐行业的顶尖产业。作为一项综合艺术,从被发明至今,近200年的发展史中,无人可以替代,并始终走在时代的前列。 电影回放的原理就是“视觉残留”,也就是快速移过眼前的画面,会在人的大脑中残留短暂的时间,随着画面不断地移过,…

聊聊研发效能建设的痛点

这是鼎叔的第八十九篇原创文章。行业大牛和刚毕业的小白,都可以进来聊聊。 欢迎关注本专栏和微信公众号《敏捷测试转型》,星标收藏,大量原创思考文章陆续推出。本人新书《无测试组织-测试团队的敏捷转型》已出版(机械工业出版社&…

超详细的单元测试总结

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、何为单测 测试有黑盒测试和白盒测试之分,黑盒测试顾名思义就是我们不了解盒子的…

Linux-实用操作(黑马学习笔记)

各类小技巧(快捷键) ctrl c 强制停止 ● Linux某些程序的运行,如果想要强制停止它,可以使用快捷键ctrl c ● 命令输入错误,也可以通过快捷键ctrl c,退出当前输入,重新输入 ctrl d 退出或登…

蓝桥杯算法 一.

分析&#xff1a; 本题记录&#xff1a;m个数&#xff0c;异或运算和为0&#xff0c;则相加为偶数&#xff0c;后手获胜。 分析&#xff1a; 369*99<36500&#xff0c;369*100>36500。 注意&#xff1a;前缀和和后缀和问题

客户端订阅服务端事件的机制

一、场景描述 产业大脑平台是一个典型的审核系统&#xff0c;用户发布到平台的信息需要经过审核员审核后生效。 用户发布信息->审核员审核信息->用户信息生效&#xff0c;这一流程可能发生在用户的同一次登录周期内。为了使客户端能实时响应信息的状态变化&#xff0c;…

React歌词滚动效果(跟随音乐播放时间滚动)

首先给audio绑定更新时间事件 const updateTime e > {console.log(e.target.currentTime)setCurrentTime(e.target.currentTime);};<audiosrc{currentSong.url}ref{audio}onCanPlay{ready}onEnded{end}onTimeUpdate{updateTime}></audio>当歌曲播放时间改变的时…

Leetcoder Day22| 回溯part02:组合总和+字母组合

语言&#xff1a;Java/Go 216.组合总和III 找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数&#xff0c;并且每种组合中不存在重复的数字。 说明&#xff1a; 所有数字都是正整数。解集不能包含重复的组合。 示例 1: 输入: k 3, n 7 输出: [[1,2,4]…

python图像处理初步

文章目录 处理流程灰度分布图 处理流程 在Python中&#xff0c;通过【plt】和【numpy】可以实现图像处理的最简单的流程&#xff0c;即读取图片->处理图片->显示结果->保存结果。 import matplotlib.pyplot as plt import numpy as nppath lena.jpg img plt.imrea…

python自带轻量级键值数据库shelve

使用python自带的shelve模块&#xff0c;可以作为轻量级的键值数据库&#xff0c;在使用时可以像字典一样使用&#xff1a; 使用shelve模块的流程如下&#xff1a; 示例程序 import pandas as pd import shelve import numpy as npdef main():_shelve_file "shelve_fi…

ABBYY FineReader16文档转换、PDF管理与文档比较功能介绍

ABBYY FineReader 16作为一款OCR和PDF一体化程序&#xff0c;其强大的功能使得文档处理变得简单高效。在众多功能中&#xff0c;文档转换、PDF管理和文档比较这三大功能尤为突出&#xff0c;成为了众多企业和个人用户的首选工具。 ABBYY Finereader 16-安装包下载如下&#xff…