一篇文章10分钟解释什么是链表
Posted 栗子~~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一篇文章10分钟解释什么是链表相关的知识,希望对你有一定的参考价值。
前言
如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!
一篇文章10分钟解释什么是链表
01 哪什么是链表呢?
链表、一种常见的基础数据结构,是一种线性表,但是不会按照线性的顺序存储数据,而是每一个节点里存到下一个节点的指针。存储区间离散,占用内存比较宽松,使用链表查询比较慢,但是增删比较快;
- 单链表:每个节点包含两部分,一部分存放数据变量的data,另一部分是指向下一节点的next指针
- 双向链表:除了包含单链表的部分,还增加的pre前一个节点的指针
02 存储特点:
可以用任意一组存储单元来存储单链表中的数据元素,并由存储数据外加存储指示其直接后续元素的信息这两部分组成,这两部分组成的数据元素的存储映像称为结点,而N个结点链在一块称为链表。
03 结点结构:
由数据域与指针域组成,数据域存储数据,指针域指向下一个节点存储的位置。
04 有头节点结构图:
对于单链表可以分为有头结点和无头结点,下面是有头结点结构图,无头结点,顾名思义就是没有头部结点。
有头结点:即在单链表开始结点之前附设一个类型相同的结点,称之为头结点,头结点的数据域可以存储信息,也可以不存,指针域指向开始结点的指针(即第一个元素结点的存储位置)。
05 注意事项:
在java中没有指针的概念,而类似的指针在java中都是通过引用来实现的,但是为了突出我们的理解,仍然通过指针进行描述,下面是用代码来描述在java中,如何用引用来实现指针的逻辑。
public LNode{
int data; //数据域
LNode next; //下一个指针的引用
}
06 优缺点:
链表的优点在于,不需要连续的存储单元,修改链表的复杂度为O(1) (在不考虑查找时)
但是缺点也很明显:无法直接找到指定节点,只能从头节点一步一步寻找复杂度为O(n)
以上是关于一篇文章10分钟解释什么是链表的主要内容,如果未能解决你的问题,请参考以下文章