链表
它阻挡了多少对编程感兴趣的童鞋的“胶布”
每每遇到有关“链表”问题的童鞋
都对其望而却步
我们今天就来研究一下它到底多“难搞”
要攻破这道难关,首先需要一些“前期准备”
第一个就是“指针”
一、什么是指针
一个变量在内存当中的地址就叫做这个变量的指针。(通俗地讲:你家的地址就叫你的“指针”)
二、什么是指针变量
我们定义一个变量专门存放另一个变量的地址,就叫指针变量。(通俗地讲:用张纸写了你家的地址,方便你的家人找到。这张纸就是“指针变量”)
这个指针就指向了这个变量的地址。
三、什么是链表
链式存储的线性表,简称链表。链表由多个链表元素组成,这些元素称为节点。结点之间通过逻辑连接,形成链式存储结构。存储结点的内存单元,可以是连续的也可以是不连续的。逻辑连接与物理存储次序没有关系。
四、链表的域
链表有两个域:
1、值域:用于存放结点的值
2、链域:用于存放下一个结点的地址或位置
五、链表的分类
1、从内存角度出发:静态链表、动态链表
2、从链表存储方式的角度出发:单链表、双链表、以及循环链表
(看到三、四、五是不是已经开始懵了?)
上面对链表的概述直接翻译为:
用一张纸写上了你家的地址,这张纸为了防止丢失,于是我又找另一张纸写上第一张纸放的位置,但是万一都丢了,于是乎我又找到第三张纸去写上第二张纸所放的位置......如此循环往复,形成了一个“链表”。
对应过来那就是:定义了一个变量,再定义了一个指针变量(头指针),这个指针并没有指向这个变量的地址,而是指向了下一个变量的地址,直到没有变量的地址可以指向为止(空地址)。
(注:本公众号文章纯属个人爱好,如有错漏或不妥之处,欢迎批评指出)
领取专属 10元无门槛券
私享最新 技术干货