头指针VS头结点 以及 如何理解头结点

article/2025/11/9 0:59:16

头指针VS头结点

头指针和头结点是两个不同概念。
链表是它们的范畴。

1.头指针是指向链表第一个节点的指针,如果此链表第一个节点是头结点,那么头指针就指向头结点。
2.头结点内通常不储存数据,但不排除例外,有时候可能会储存链表长度。

理解头指针:

void ListTemp<T>::addHead(const T& newData)//这里展示的双向链表从头插入新的结点的过程
{Node* newHead = new Node;newHead->data = newData;if (size == 0){newHead->next = head;newHead->pre = head;//注意:这里的head,包括前面定义Node * head 的地方,head都是头指针的意思。head = newHead;size++;}else{newHead->next = head;head->pre = newHead;newHead->pre = NULL;head = newHead;size++;}
}

代码过程图示
在这里插入图片描述

理解头结点:
链表分为带头结点的链表和不带头结点的链表。
(无论带不带头结点,头指针是一直存在的)

如何理解它们的概念呢?
以单链表为例:
不带头结点的单链表
这是不带头结点的单链表。

带头结点的单链表
这是带头结点的单链表。

下面展示二者在代码上的区别

//不带头结点的单链表的初始化  
void LinkedListInit1(LinkedList L)  
{  L=NULL;  
}  
//带头结点的单链表的初始化  
void LinkedListInit2(LinkedList L)  
{  L=(LNode *)malloc(sizeof(LNode));  if(L==NULL)  {  printf("申请空间失败!");  exit(0);  }  L->next=NULL;  
}  

从代码的角度来讲,我们更愿意使用带头结点的单链表,因为如果不带头结点,在对链表的增删改查中,我们需要进行分类讨论,很麻烦。
但在学校数据结构课程中,实验要求使用“空表”,于是,在上述理解头指针部分的代码,是基于无头结点的情况写的。

刚刚上面代码过程示意图(无头结点):
在这里插入图片描述

补充一个有头结点的过程示意图(有头结点):
在这里插入图片描述
对比两个图就能区分有头结点与没有头结点的两种链表。
也理解了头指针和头结点的关系。

头指针一定指向第一个结点,但这个结点不一定是头结点。


http://chatgpt.dhexx.cn/article/F5PbZNba.shtml

相关文章

【头结点】【头指针】【首元结点】

2022 -1-14 文章目录 2022 -1-141. 定义&#xff1a;2. 哨兵&#xff08;头结点&#xff09;3. 有无头结点的单链表的创建3.1 有头结点3.1.1 头插法&#xff1a;3.1.2 尾插法&#xff1a; 3.2 无头结点3.2.1 头插法&#xff1a;3.2.2 尾插法&#xff1a; 1. 定义&#xff1a; …

python 链表中头结点的含义以及引入头结点的作用

一、概念 头结点:是虚拟出来的一个结点&#xff0c;不保存数据。头结点的next指针指向链表中的第一个节点。对于头结点&#xff0c;数据域可以不存储任何信息&#xff0c;也可存储如链表长度等附加信息。头结点不是链表所必需的。 头指针:是指向第一个结点的指针,如果链表没有…

数据结构:头指针,头结点详解(新手.小白)

如果不想看定义的话&#xff0c;可以看我的第二部分&#xff0c;里面有我自己遇到的一些疑难。 下文中出现的有关于java的&#xff0c;也有c语言的指针&#xff08;可以看成java的引用变量&#xff09;&#xff0c;觉得写得不好&#xff0c;多多包涵 目录 (一&#xff09;…

头结点的含义以及引入头结点的作用

一、概念 头结点:是虚拟出来的一个节点&#xff0c;不保存数据。头结点的next指针指向链表中的第一个节点。对于头结点&#xff0c;数据域可以不存储任何信息&#xff0c;也可存储如链表长度等附加信息。头结点不是链表所必需的。 头指针:是指向第一个结点的指针,如果链表没有…

qpython 3h下载_【分享】QPython 3H3.0.0 一个伟大的脚本编辑器!

这有点。。。东西!!! 【应用名称】&#xff1a;QPython 3H 【应用版本】&#xff1a;3.0.0 【应用大小】&#xff1a;25.41M 【软件介绍】&#xff1a; 这个软件集成了Python3解释器、Console控制台、QEdit编辑器和SL4A库&#xff0c;可以直接在安卓手机上运行Python代码&…

qpython3l_qpython3例子

广告关闭 腾讯云11.11云上盛惠 &#xff0c;精选热门产品助力上云&#xff0c;云服务器首年88元起&#xff0c;买的越多返的越多&#xff0c;最高返5000元&#xff01; 在控制台使用计划界面创建使用计划&#xff0c;并将使用计划与已创建的密钥对绑定&#xff08;参考 使用计…

qpython 3h_QPython 3H

qpython 3h一款用于线上编辑来提供的手机软件&#xff0c;能够让你轻松的进行法语内容的快速编辑&#xff0c;用户只需要通过输入之后即可轻松的在软件生成法语&#xff0c;还能够轻松的将文字转化成相对应的法语让你在翻译的时候享受便捷效果&#xff0c;更是还拥有着独特的解…

说一说Qpython3在Android手机上的应用

QPython3是一款可以完美运行于Android平台上的Python3的脚本引擎&#xff0c;QPython3整合了Python3解释器、Console、编辑器和SL4A库。让你在Android设备上也能方便的开发Python项目。 研究Qpython也有一段时间了&#xff0c;一直想记录一些东西以便后面可以回顾&#xff0c;…

Visio使用技巧备忘录

用Visio画图过程中&#xff0c;将遇到的问题记录下来&#xff0c;以免忘记。 内容如下&#xff1a; 1、画流程图时&#xff0c;新建&#xff0c;根据需求选里面的模板。&#xff08;第一次选的空白绘图&#xff0c;啥都没有&#xff09; 2、画箭头&#xff0c;点击指针工具旁边…

Visio使用技巧之默认字体大小更改

然而这东西不能保存&#xff0c;但是也算是全局设置&#xff0c;免了一步一步设置的烦恼

visio 使用技巧汇总

1.visio中图形旋转任意角度的方法 视图----任务窗格----大小与位置----角度 2.箭头形状 更多形状---流程图----箭头形状 3.汇制虚线框 从基本形状中拖出一个矩形,右击矩形,选择设置形状格式,填充选择无填充,开始菜单栏中的形状样式选择线条---虚线即可 4.云状图 (1)开始---…

【visio使用技巧】图片导出pdf时去掉多余空白

问题 在visio导出pdf格式的图片时&#xff0c;往往会存在多余的白边&#xff0c;如下图所示&#xff1a; 解决方法 依次点击&#xff1a;菜单栏→文件→选项→自定义功能区→勾选“开发工具”→确定。 依次点击菜单栏→开发工具→显示ShapeSheet→页→Print Properties→将…

软件开发过程中的Visio使用

文章目录 前言一、思维导图二、用例图三、跨系统流程图四、流程图五、时序图六、其他图形 前言 在软件需求分析和设计过程中&#xff0c;时常需要通过图形来梳理和表达软件的运行原理。visio是一款专业的办公绘图软件&#xff0c;具有简单、便捷等关键特性。它能够帮助我们将自…

visio使用小技巧

文章目录 1.取消首字母自动大写2.跨线设置3.粘附和取消粘附4.对齐5.调整画布大小6.连接线任意位置弯折 总结 1.取消首字母自动大写 文件 -> 选项 -> 校对 -> 自动更正选项 -> 自动更正 -> 句首字母大写 2.跨线设置 选中连接线 设计 -> 连接线 -> 显示…

VISIO使用技巧汇总

0.连接线拐弯或者连接不合适 0-0.Goal ​​​​​​​ 0-1. Automatic connection 0-3.Resolvent 0-3-0.ALTF9选项&#xff0c;取消粘附位置调整 0-3-1.选中线段-选中中心点-shift增加直角调整合适位置

2-visio使用与卸载

目录 部分功能介绍图形拆分去除白边Visio绘制立方体&#xff0c;平行四边形方法不规则图形的绘制,与颜色填充visio导出PDF图&#xff0c;解决字母间距问题、线条变粗问题 卸载方法 部分功能介绍 图形拆分 目标&#xff1a;利用vision绘制一个分裂的圆。 方法&#xff1a;先画…

Visio使用教程

首先&#xff0c;根据自己需求选择自己需要的结构图&#xff0c;也可以新建白图通过图形自己设计 接着新建基本框图 图形生成&#xff0c;在模具形状里找到自己所需要的形状&#xff0c;点击左键不松&#xff0c;拖到绘图区域&#xff0c;松开左键即会形成一个自己所需要的形状…

visio使用记录

绘制双箭头 1、首先在电脑上打开microsoft visio 2013软件&#xff0c;选择任意模板进入绘图区域&#xff0c;如下图所示。 2、在上方开始菜单里找到【指针工具】选项&#xff0c;点击右侧倒三角按钮&#xff0c;弹出下拉菜单&#xff0c;在下拉菜单里找到【线条】选项&…

Visio使用

visio使用 1. 加公式2. 关于画图3. 关于流程图 1. 加公式 这个软件不知道怎么放公式&#xff0c;其实我那个也不算公式&#xff0c;主要有上下标&#xff0c;这里记录一下在哪改 结果 2. 关于画图 由于经常要把很多个图拼起来画&#xff0c;所以会先在PPT里面把图扣好&…