数据结构与算法学习记录(三)链表结构

顺序表结构的存储方式存在以下问题:

1、在插入或者删除结点时,往往需要移动大量的数据。
2、如果表比较大,有时比较难分配足够的连续存储空间,往往导致内存分配失败,而无法存储。

链表可以很好的解决顺序表的存储问题。链表结构是一种动态存储分配的结构形式,可以根据需要动态申请所需的内存单元。

什么是链表结构

1、链表中的每个结点都包括以下内容:
1)数据部分: 保存的是该结点的实际数据。
2)地址部分:保存的是下一个结点的地址。
链表的结构如下所示:
在这里插入图片描述
在链表结构中,逻辑上相邻的结点在内存中并不一定相邻,逻辑相邻关系通过地址部分的引用变量来实现。

链表结构中的结点之间是不要求连续存放,因此在保存大量数据时,不需要分配一块连续的存储空间。用户可以用new 函数动态分配结点的存储空间,当删除某个结点时,给该节点赋值null,释放其占用的内存空间。

链式存储是最常用的存储方式之一,它不仅可用来表示线性表,而且可用来表示各种非线性的数据结构。其还可以细分为如下几类:

1、单链表:同上面的链式结构一样,每个结点中只包含一个引用。
2、双向链表:若每个结点包含两个引用,一个指向下一个结点,另一个指向上一个结点,这就是双向链表。
单循环链表: 在单链表中,将终端结点的引用域null改为指向表头结点或开始结点即可构成单循环链表。
3、多重链的循环链表:如果将表中结点链在多个环上,将构成多重链的循环链表。

缺点:

1、浪费存储空间。
2、链表的访问只能从表头逐个查找。

发布了84 篇原创文章 · 获赞 8 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/GaoXiR/article/details/105622519