世纪难题系列之链表(1)-第五天分享

链表

它阻挡了多少对编程感兴趣的童鞋的“胶布”

每每遇到有关“链表”问题的童鞋

都对其望而却步

我们今天就来研究一下它到底多“难搞”

要攻破这道难关,首先需要一些“前期准备”

第一个就是“指针”

一、什么是指针

一个变量在内存当中的地址就叫做这个变量的指针。(通俗地讲:你家的地址就叫你的“指针”)

二、什么是指针变量

我们定义一个变量专门存放另一个变量的地址,就叫指针变量。(通俗地讲:用张纸写了你家的地址,方便你的家人找到。这张纸就是“指针变量”)

这个指针就指向了这个变量的地址。

三、什么是链表

链式存储的线性表,简称链表。链表由多个链表元素组成,这些元素称为节点。结点之间通过逻辑连接,形成链式存储结构。存储结点的内存单元,可以是连续的也可以是不连续的。逻辑连接与物理存储次序没有关系。

四、链表的域

链表有两个域:

1、值域:用于存放结点的值

2、链域:用于存放下一个结点的地址或位置

五、链表的分类

1、从内存角度出发:静态链表、动态链表

2、从链表存储方式的角度出发:单链表、双链表、以及循环链表

(看到三、四、五是不是已经开始懵了?)

上面对链表的概述直接翻译为:

用一张纸写上了你家的地址,这张纸为了防止丢失,于是我又找另一张纸写上第一张纸放的位置,但是万一都丢了,于是乎我又找到第三张纸去写上第二张纸所放的位置......如此循环往复,形成了一个“链表”。

对应过来那就是:定义了一个变量,再定义了一个指针变量(头指针),这个指针并没有指向这个变量的地址,而是指向了下一个变量的地址,直到没有变量的地址可以指向为止(空地址)。

(注:本公众号文章纯属个人爱好,如有错漏或不妥之处,欢迎批评指出)

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180403G1GLB300?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券