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