1.1 开场白
- 希望大家感受编程之美。
1.2 你数据结构怎么学的?
- 举个例子🌰,学不好数据结构,会很麻烦。
1.3 数据结构起源
- 研究非数值计算程序问题中的操作对象,以及他们之间关系和操作等相关问题的学科。
1.4 基本概念和术语
- 计算机是锅,数据是米
1.4.1 数据
- 数据
描述客观事物的符号;
计算机中可以操作的对象;
能被计算机识别,并输入给计算机处理的符号集合。
- 特性
- 可以输入到计算机中
- 能被计算机程序处理
1.4.2 数据元素
- 数据元素
组成数据的,有一定意义的基本单位,在计算机中通常作为整体处理。
1.4.3 数据项
- 数据项:一个数据元素可以由若干个数据项组成。
数据项是数据不可分割的最小单位。
1.4.4 数据对象
- 数据对象:性质相同的数据元素的集合,是数据的子集。
1.4.5 数据结构
- 数据结构:相互之间存在的一种或多种特定关系的数据元素的集合。
1.5 逻辑结构和物理结构
- 视点不同,数据结构分为逻辑结构和物理结构。
1.5.1 逻辑结构
- 逻辑结构:数据对象中数据元素之间的相互关系。
- 集合机构
集合结构中数据元素同属一个集合,没有其他关系。
- 线性结构
线性结构中的数据元素是一对一的关系。
- 树形结构
树形结构中的数据元素之间存在一种一对多的层次关系。
- 图形结构
图形结构的数据元素是多对多的关系。
1.5.2 物理结构
- 物理结构:是指数据的逻辑结构在计算机中的存储形式。
- 顺序存储结构。
顺序存储结构:把数据元素放在地址连续的存储单元,其数据间的逻辑关系和物理关系是一致的。
- 链式存储结构。
链式存储结构:把数据元素存放在任意存储单元里,存储单元可以连续也可以不连续。
- 逻辑结构是面向问题的,物理结构是面向计算机的。目标就是将数据及逻辑关系存储到计算机内存中。
1.6 抽象数据类型
1.6.1 数据类型
- 数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。
- 数据类型分类
原子类型:不可以再分解的基本类型,包括整型、实型、字符型等。
结构类型:由若干个类型组合而成,是可以再分解的。例如,整型数组是由若干整型数据组成的。
- 抽象:是指取出事物具有的普遍性本质。
1.6.2 抽象数据类型
- 抽象数据类型(Abstract Data Type, ADT):是指一个数学模型及定义在该模型上的一组操作。
- 描述抽象数据类型的标准格式:
ADT 抽象数据类型名
Data
数据元素之间逻辑关系的定义
Operation
操作 1
初始条件
操作结果描述
操作 2
......
操作 n
......
endADT
1.7 总结回顾
- 包含关系:数据>数据对象>数据元素>数据项
- 逻辑结构:集合结构,线性结构,树形结构,图形结构。
- 物理结构:顺序存储结构;链式存储结构。
1.8 结尾语
- 学会数据结构需要努力。