01|数据结构到底是什么?

1. 核心概念

数据结构是组织和管理数据的方式,描述数据之间的关系,以及访问、查找、插入、删除等操作。

  • 逻辑结构:数据之间的关系与操作规则,例如队列的先进先出。
  • 存储结构:数据在内存中的组织形式,例如连续数组或链式节点。

两者可以组合:队列既能使用数组,也能使用链表实现。

flowchart TD
    A["同一批数据"] --> B{"操作需求"}
    B -->|"按位置直接访问"| C["数组:按下标定位"]
    B -->|"按到达顺序处理"| D["队列:先进先出"]
    C --> E["不同结构适应不同操作"]
    D --> E

2. 常见结构与适用场景

主要需求可以优先考虑原因
按位置快速访问数组通过下标直接定位
按先后顺序处理队列先进先出(FIFO)
后进入的数据先处理栈后进先出(LIFO)
已知节点位置,调整连接关系链表修改节点之间的链接

这些是常见的选型方向,并非绝对规则。

3. 选型依据

  • 操作特点:随机访问、顺序处理、查找或频繁插删。
  • 数据规模:元素数量、容量是否固定、是否需要扩展。
  • 资源约束:内存占用、响应时间、实现复杂度与可靠性。

例如,少量固定配置项通常适合数组;连续到来并顺序消费的数据可考虑环形缓冲区。

4. 数据结构与算法

  • 数据结构:数据怎样组织与保存。
  • 算法:怎样处理数据,例如查找、排序和遍历。

数据的组织方式会影响算法的实现方式与执行成本。

5. 总结

数据结构的选择取决于操作需求与资源约束,不存在适用于所有场景的最优结构。