DSA 链表
顾名思义,链表 是一种节点相互连接的列表。每个节点包含数据和一个指针。它们的连接方式是每个节点指向内存中下一个节点的位置。
链表
链表由包含某种数据的节点和指向下一个节点的指针或链接组成。
使用链表的一个主要优势是,节点可以存储在内存中任何空闲位置,节点不需要像数组元素那样连续存储在一起。链表的另一个好处是,在添加或删除节点时,列表中其他节点不需要移动。
链表与数组
理解链表的最简单方法可能是将链表与数组进行比较。
链表由节点组成,是一种我们自己创建的线性数据结构,不像数组,数组是编程语言中现有的数据结构,我们可以使用它。
链表中的节点存储指向其他节点的链接,但数组元素不需要存储指向其他元素的链接。
注意: 链表和数组如何在内存中存储将在下一页中更详细地解释。
下表比较了链表和数组,以便更好地理解链表是什么。
数组 | 链表 | |
---|---|---|
编程语言中现有的数据结构 | 是 | 否 |
内存中固定大小 | 是 | 否 |
元素或节点在内存中连续存储在一起(连续的) | 是 | 否 |
内存使用率低 (每个节点只包含数据,没有指向其他节点的链接) |
是 | 否 |
可以直接访问元素或节点(随机访问) | 是 | 否 |
可以在恒定时间内插入或删除元素或节点,无需在内存中进行移位操作。 | 否 | 是 |
为了更详细地解释这些差异,下一页将重点介绍链表和数组如何在内存中存储。