2.链表

navyum / 2025-02-15 / 原文

链表 Linked List:

概念:

  • 数组(Array)是一种线性表数据结构
  • 非连续的内存空间,来存储具有相同类型的数据的数据结构
  • 每个节点包含数据部分指针,指针指向下一个(或上一个,对于双向链表)节点

特点:

  • 动态大小:链表的大小可以在运行时改变
  • 不连续的内存:节点可以在内存中分散存储,通过指针相连

优缺:

  • 优点:插入、删除(改指针)
  • 缺点:查询、更新(遍历)

图解:

  • 内存地址不连续
  • 从头节点开始,通过指针遍历的方式访问。(指针记录下一个节点的内存地址)

链表操作:

  • 初始化链表
  • 访问元素
  • 插入元素
  • 删除元素
  • 遍历数组
  • 查找元素
  • 扩容数组

常见链表:

  • 单向链表
    • 栈与队列、哈希表的链式地址、图的邻接表
  • 环形链表
    • 时间片轮转调度算法、数据缓冲区
  • 双向链表
    • 红黑树、B树、浏览器历史、LRU 算法