链表数据结构详解
1. 引言
数组是编程语言中非常有用的数据结构,但它存在一些局限性:
- 内存存储空间浪费:即使只存储了少量节点,数组在程序执行期间仍会占用分配的内存,因为额外的节点仍然被保留,其存储空间无法用于其他目的。
- 数组大小固定:数组的大小在声明后不能更改,即必须在编译时确定其大小。
链表数据结构可以克服这些局限性。链表是最常用的数据结构之一,用于在内存中存储相似类型的数据。链表的元素不像数组那样存储在相邻位置。数组一旦分配内存空间就不能扩展,因此这种数据结构被称为静态数据结构;而链表为元素分配的内存空间可以随时扩展,所以被称为动态数据结构。
链表是有限同质数据元素(称为节点)的有序集合,线性顺序通过链接或指针来维持。每个节点分为两部分:第一部分包含节点的信息,第二部分包含指向下一个节点的链接。
部分 | 描述 |
---|---|
信息 | 节点存储的具体数据 |
指向下一个节点的链接 | 用于连接链表中的下一个节点 |
下面是节点结构的 mermaid 流程图:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;