关于链表中头指针和头结点的理解
来源:互联网 发布:pc访问mac共享文件夹 编辑:程序博客网 时间:2024/05/21 08:36
转自:http://blog.csdn.net/mcgrady_tracy/article/details/32130421
线性表使用顺序(数组)存储时有个弊端,那就是在插入和删除时需要大量的移动数据,这显示是非常消耗时间的,所以可以采用链式存储,即有一个指针域(单链表),来记录下个结点的存储位置(地址),这样在插入和删除结点时只需要修改指针域即可,从而大量减少移动数据所消耗的时间。来看链表的定义:
struct node {int data;struct node *next;};
其中有两个元素,data为数据域,用于存储数据,next为指针域,用于存储下个结点的位置(地址)。那么什么是头指针呢?我们把指向第一个结点的指针称为头指针,那么每次访问链表时都可以从这个头指针依次遍历链表中的每个元素,例如:
struct node first;struct node *head = &first;
这个head指针就是头指针。
这个头指针的意义在于,在访问链表时,总要知道链表存储在什么位置(从何处开始访问),由于链表的特性(next指针),知道了头指针,那么整个链表的元素都能够被访问,也就是说头指针是必须存在的。示例如下:
那么什么又是头结点呢?很多时候,会在链表的头部附加一个结点,该结点的数据域可以不存储任何信息,这个结点称为头结点,
头结点的指针域指向第一个结点,例如:
struct node head, first;head.next = &first;那么这里的头指针又是谁呢,不在是指向第一个结点的指针,而是指向头结点的指针,例如:
struct node *root = &head;
即root指针才是头指针。示例如下:
1 0
- 关于链表中头指针和头结点的理解
- 关于链表中头指针和头结点的理解
- 关于链表中头指针和头结点的理解
- 关于链表中头指针和头结点的理解
- 头指针和头结点的区别
- 单链表的头结点和头指针
- 头指针和头结点
- 关于有头结点和无头结点的单链表
- 关于对象和对象指针,涉及指向链表首结点和二叉树根结点的头指针——传指针还是传指针的指针?
- 链表中 的 头指针 和 头结点 是不一样的
- 链表中头结点与头指针的概念
- 链式存储结构的头指针和头结点
- 链表中头指针和头节点(头结点)
- 数据结构中的头结点和头指针
- 头指针与头结点的异同
- 链表的 头指针 头结点
- 头指针与头结点的区别
- 头指针与头结点的区别
- 微信小程序-view组件
- 分析sql语句中索引是否被使用
- android: 后台执行的定时任务
- c++thread学习(1)
- VS工具箱重复显示
- 关于链表中头指针和头结点的理解
- JS生成随机字符串
-  |"|&|<|>等html字符转义
- 安卓音乐播放器 路径设置错误
- Mybatis中oracle、mysql、db2、sql server的like模糊查询
- MSP430G2553 WDT的NMI中断例子
- 聚焦CSDN技术主题月:深度学习框架的重构与思考专场回顾
- 树莓派摄像头,音频驱动
- dialog显示位置