一篇文章10分钟解释什么是链表

Posted 栗子~~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一篇文章10分钟解释什么是链表相关的知识,希望对你有一定的参考价值。

前言

  如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
  而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!


一篇文章10分钟解释什么是链表

01 哪什么是链表呢?

 链表、一种常见的基础数据结构,是一种线性表,但是不会按照线性的顺序存储数据,而是每一个节点里存到下一个节点的指针。存储区间离散,占用内存比较宽松,使用链表查询比较慢,但是增删比较快;

  1. 单链表:每个节点包含两部分,一部分存放数据变量的data,另一部分是指向下一节点的next指针
  2. 双向链表:除了包含单链表的部分,还增加的pre前一个节点的指针

02 存储特点:

 可以用任意一组存储单元来存储单链表中的数据元素,并由存储数据外加存储指示其直接后续元素的信息这两部分组成,这两部分组成的数据元素的存储映像称为结点,而N个结点链在一块称为链表。


03 结点结构:

由数据域与指针域组成,数据域存储数据,指针域指向下一个节点存储的位置。


04 有头节点结构图:

 对于单链表可以分为有头结点和无头结点,下面是有头结点结构图,无头结点,顾名思义就是没有头部结点。
 有头结点:即在单链表开始结点之前附设一个类型相同的结点,称之为头结点,头结点的数据域可以存储信息,也可以不存,指针域指向开始结点的指针(即第一个元素结点的存储位置)。
在这里插入图片描述


05 注意事项:

 在java中没有指针的概念,而类似的指针在java中都是通过引用来实现的,但是为了突出我们的理解,仍然通过指针进行描述,下面是用代码来描述在java中,如何用引用来实现指针的逻辑。

public LNode{
   int data;  //数据域
   LNode next; //下一个指针的引用
}

06 优缺点:

链表的优点在于,不需要连续的存储单元,修改链表的复杂度为O(1) (在不考虑查找时)
但是缺点也很明显:无法直接找到指定节点,只能从头节点一步一步寻找复杂度为O(n)

以上是关于一篇文章10分钟解释什么是链表的主要内容,如果未能解决你的问题,请参考以下文章

数据结构与算法什么是链表?并用代码手动实现一个单向链表

什么是链表的一个实际的、真实的例子?

什么是链表?

什么是链表?

数据结构--队列的实现(单向链表方式)

数据结构--队列的实现(单向链表方式)