8
数据结构(Data Structure)
数据结构基础总览
把“数据、数据元素、逻辑结构、存储结构”这四个概念,放进同一张知识地图里去理解: 先看“是什么”,再看“彼此之间怎么组织”,最后看“在计算机里怎么存”。
从“数据”到“数据结构”
数据本身只是符号的集合;当这些符号被拆分成有意义的基本单位,并且这些单位之间建立起稳定关系, 才真正进入“数据结构”的研究范围。
第一层
数据
对数字、文字、图像、状态等客观信息的记录,本质上是“可识别的符号”。
12
A
温度
红灯
ID
第二层
数据元素
把零散符号组合成可整体处理的单位,例如“一名学生的信息”“一条订单记录”。
姓名
学号
成绩
第三层
逻辑结构
研究数据元素之间“有什么关系”,例如是否是一对一、一对多或多对多,但不关心它们在内存中的具体位置。
第四层
存储结构
研究这些数据元素在计算机中的实际存放方式,例如连续存放、用指针连接,或借助索引与哈希来定位。
核心判断题
学数据结构时,最关键的问题不是“这是什么名字”,而是连续追问下面三件事:
1. 元素是什么?
- 基本单位是什么
- 是单个数、记录,还是一个对象
- 处理时是否把它当整体
2. 元素之间什么关系?
- 有没有前后次序
- 是一个带多个后继,还是多个互相连接
- 是线性、树形,还是图形
3. 在内存中怎么表示?
- 连续存放还是分散存放
- 靠位置找,还是靠指针找
- 是否要借助索引或哈希
4. 适合什么操作?
- 查找快还是插入快
- 顺序访问方便还是灵活连接方便
- 算法设计会受哪种结构影响
逻辑结构:元素之间“怎么联系”
逻辑结构只关心关系,不关心这些元素在内存里放在哪里。下面四类是最基础、最常见的逻辑结构。
集合
元素只表示“同属一个整体”,元素之间没有顺序、层次或连接方向。
线性结构
一个元素通常只对应一个直接前驱和一个直接后继,像排队一样一对一连接。
树形结构
一个元素可以引出多个后继,形成层次分明的“一对多”关系。
图形结构
元素之间可能出现多对多连接,关系最灵活,常用于网络、交通、社交等场景。
存储结构:元素在计算机中“怎么放”
同一种逻辑结构,可以用不同的物理方式去实现。点击下面按钮,可以切换查看顺序存储和链式存储。
顺序存储:元素通常连续放在一片内存区域中,逻辑上的相邻,往往也对应存储上的相邻。
12
15
21
34
特点:按下标访问快、结构紧凑;但中间插入或删除时,往往需要移动后续元素。
链式存储:元素可以分散存放,通过指针(地址关系)把逻辑上的前后连接起来。
8
→
12
→
15
→
21
特点:插入和删除更灵活;但访问第 k 个元素时,通常需要沿着链接一步一步找过去。
索引存储 / 哈希存储:除了原始数据,还额外建立“查找入口”,让定位更快。
101
→3
H7
快
特点:牺牲一部分额外空间,换来更快的定位能力,适合查找需求强的场景。
一句话串起来
数据
是客观信息的符号化记录。
数据元素
是构成数据的基本处理单位。
逻辑结构
回答“元素之间是什么关系”。
存储结构
回答“这些关系在计算机里怎么实现”。
