c语言中p-next,c – p- next- prev与p相同吗?
I was wondering if the p->next->prev = p->prev; part is the same as saying p = p->prev
不它不是.它正在设置列表中p节点之后的下一个节点的prev字段.
代码正从列表中删除p节点.需要更新p节点两侧的两个周围节点以停止指向p节点,而是指向彼此.你展示的只是必要更新的一半.你需要添加另一半:if(p-> prev!= NULL)p-> prev-> next = p-> next;.您还需要检查p是否指向列表的头节点,如果是,则将头部更新为指向p->.与列表的尾节点(如果有)一样,指向p-> prev.
此外,代码中的if(p = NULL)是错误的,它应该是if(p == NULL).而代码中的if(p-> next == NULL)也是错误的,它应该是if(p-> next; = NULL).
这是正确的实现:
template bool linkedList::deleteElement(node *p)
{
if (p == NULL)
return false;
if (p->next != NULL)
p->next->prev = p->prev;
if (p->prev != NULL)
p->prev->next = p->next;
if (p == head)
head = p->next;
// if your list has a tail:
if (p == tail)
tail = p->prev;
// if your list owns the memory for the nodes:
delete p; // or however you free it
return true;
}
最后,您应该考虑使用STL std::list容器而不是手动实现.
c语言中p-next,c – p- next- prev与p相同吗?相关推荐
- c语言中struct和c++中class实例对比
前言 实现游戏中简单的打怪升级的功能 c语言中的struct #include <stdio.h>typedef void(*Train)(struct player*, int); ty ...
- 关于C语言中printf函数“输出歧视”的问题
目录 关于C语言中printf函数"输出歧视"的问题 问题描述 探索问题原因 另一种研究方法 问题结论 关于C语言中printf函数"输出歧视"的问题 问题描述 ...
- C语言中“野指针”、“悬空指针”是什么?
目录 1."野指针"(wild pointer) 2."悬空指针"(dangling pointer) 1."野指针"(wild point ...
- c+语言+null,C/C++语言中NULL、'\0’和0的区别
NULL.'\0'和0的值是一样的,都是0,不过它们的表现形式不一样: 1. NULL: 即空指针,不过在C和C++中并不一样.在VS 2013的库文件string.h中可以看到如果定义. 1 /* ...
- 关于C语言中的malloc和free函数的用法
一.malloc()和free()的基本概念以及基本用法: 1.函数原型及说明: void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针 ...
- python global函数_如何使用python语言中的global关键字获取函数值
在python语言中,如果在函数外层定义了一个全局变量a,函数内部又有一个同名的局部变量,想要这个全局变量的值改成为局部变量的值,可以使用global.下面利用一个实例说明如何实现这个场景,操作如下: ...
- c语言中的if语句_If ... C中的其他语句解释
c语言中的if语句 Conditional code flow is the ability to change the way a piece of code behaves based on ce ...
- C 语言中 void* 详解及应用介绍
void 在英文中作为名词的解释为 "空虚.空间.空隙",而在 C 语言中,void 被翻译为"无类型",相应的void * 为"无类型指针" ...
- java 英文字符 字节_3、在JAVA语言中,每个英文字符占 个字节,每个中文汉字占( )个字节。...
[判断题]中心原子中的几个原子轨道杂化时,必形成数目相同的杂化轨道. [单选题]集合 用区间表示正确的是 ( ) [单选题]15.Java语言的类间的继承关系是 [单选题]8.编译Java Appli ...
- 8位alu运算器(vhdl语言)_C语言中signed char类型,能表示-128到127,为什么负数多一位?...
初学者在学习C语言,谈到不同数据类型时,一般都能理解 unsigned 和 signed 的区别,无非就是有无符号而已.但是对于 signed 数据类型的数据范围,初学者却常常会感到迷惑. 对于 si ...
最新文章
- poj 3177 Redundant Paths
- php新手最容易犯的错误,学习PHP过程中容易犯的一些错误
- 被替换的项目不是替换值长度的倍数_面试官,为啥HashMap的长度是2的n次方?
- [八省联考2018]劈配 (匈牙利)
- 【struts2】预定义拦截器
- cglib动态代理导致注解丢失问题及如何修改注解允许被继承
- H5 存储数据sessionStorage
- 2020.3二级中选择题文件类型题目全套
- Html元素~~标签学习
- 单片机相关知识点,最强科普总结!
- xxnet 360浏览器设置
- 绿城离职员工万言书全文
- html取消父元素样式,CSS以防止子元素继承父样式
- lol人物模型提取(八)
- The kernel appears to have died. It will restart automatically
- 多个mysql共存_双mysql共存(MySQL8.0与MySQL5.7)
- sysdig_Sysdig: 系统故障排查利器
- 外网怎么访问公司内网的数据库?
- 如何将阿里图标库的引入项目中?
- Python绘制TSP、VRP问题求解结果图
热门文章
- 苹果六电池_苹果官网上架新品,18999元起~
- 诺禾-心源性猝死基因分型研究
- win10设置默认浏览器
- 在Windows设置里改不了默认浏览器
- IntelliJ IDEA for Mac 2018.1.2 智能Java IDE开发工具 破解版下载
- linux LTP移植Android,LTP(Linux Test Project) for Android的编译
- Word 自动编号时设置一级标题为“第一章”,二级标题为“1.1”
- 公开预算 publicize budget
- 吉林警察学院计算机录取分,2017年吉林警察学院录取分数线
- unreal 虚幻引擎学习资料