数据结构——单链表的头指针、头结点…
2014-01-21 15:26
302 查看
我们所说的单链表也是一种线性表,所以总得有个头有个尾。链表中第一个结点的存储位置叫做头指针,那么整个链表的存取就必须是从头指针开始进行了。之后的每一个结点,其实就是上一个的后继指针指向的位置。
这里有个地方要注意,就是对头指针概念的理解,这个很重要。“链表中第一个结点的存储位置叫做头指针”,如果链表有头结点,那么头指针就是指向头结点数据域的指针。画一个图吧。
这个图看起来很清晰了。比如说头结点,我们就可以这么描述了:
头结点是为了操作的统一与方便而设立的,放在第一个元素结点之前,其数据域一般无意义(当然有些情况下也可存放链表的长度、用做监视哨等等)。
有了头结点后,对在第一个元素结点前插入结点和删除第一个结点,其操作与对其它结点的操作统一了。
首元结点也就是第一个元素的结点,它是头结点后边的第一个结点。
头结点不是链表所必需的。
是的,对于头指针,我们也可以有相应的理解了。
在线性表的链式存储结构中,头指针是指链表指向第一个结点的指针,若链表有头结点,则头指针就是指向链表头结点的指针。
头指针具有标识作用,故常用头指针冠以链表的名字。
无论链表是否为空,头指针均不为空。头指针是链表的必要元素。
单链表也可以没有头结点。如果没有头结点的话,那么单链表就会变成这样:
了解了单链表的结构,对后面的代码描述就轻松多了。
这里有个地方要注意,就是对头指针概念的理解,这个很重要。“链表中第一个结点的存储位置叫做头指针”,如果链表有头结点,那么头指针就是指向头结点数据域的指针。画一个图吧。
这个图看起来很清晰了。比如说头结点,我们就可以这么描述了:
头结点是为了操作的统一与方便而设立的,放在第一个元素结点之前,其数据域一般无意义(当然有些情况下也可存放链表的长度、用做监视哨等等)。
有了头结点后,对在第一个元素结点前插入结点和删除第一个结点,其操作与对其它结点的操作统一了。
首元结点也就是第一个元素的结点,它是头结点后边的第一个结点。
头结点不是链表所必需的。
是的,对于头指针,我们也可以有相应的理解了。
在线性表的链式存储结构中,头指针是指链表指向第一个结点的指针,若链表有头结点,则头指针就是指向链表头结点的指针。
头指针具有标识作用,故常用头指针冠以链表的名字。
无论链表是否为空,头指针均不为空。头指针是链表的必要元素。
单链表也可以没有头结点。如果没有头结点的话,那么单链表就会变成这样:
了解了单链表的结构,对后面的代码描述就轻松多了。
相关文章推荐
- 【数据结构】单链表—寻找两个相交链表中第一个公共结点 — 蛮力法 / 栈 / 指针先走
- 【数据结构】单链表—在O(1)时间删除链表结点
- 数据结构(四)之单链表查找中间结点
- 数据结构(四)之单链表查找中间结点
- 【数据结构】单链表—链表中倒数第K个结点 — 快慢指针
- 【数据结构】单链表的倒序、删除相同结点、按值排序等简单操作用java实现
- 数据结构—头指针和头结点分析
- 数据结构之快慢指针查找链表中间结点
- 【数据结构】单链表—判断一个链表是否形成了环形结构 — 快慢指针
- 数据结构 单链表删除结点 例子
- 生成二叉树(结点结构:数据域, 左孩子和右孩子指针)
- 数据结构——寻找单链表倒数第n个结点
- 数据结构之单链表
- 数据结构实验之链表五:单链表的拆分
- (C语言)单链表的链式实现(数据结构二)
- 数据结构——单链表的基本操作
- 【课堂回顾】数据结构之单链表
- (原创)基于关系数据库系统链式存储的树型结构数据,求某结点下的子树所有结点算法(t-sql语言实现)
- 数据结构知识基础之指针
- ORACLE 树形结构数据 查询某结点下全部子节点无限递归的前2个数据