- 数据:对客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称。
- 数据元素:数据的基本单位。由若干数据项组成。
- 数据项:数据不可分割的最小单位。
- 数据对象:性质相同的数据元素的集合。
- 数据结构:相互之间存在的一种或多种特定关系的数据元素的集合。
- 4类基本结构:
- 集合
- 线性结构:一对一关系
- 树形结构:一对多关系
- 图形结构或网状结构:多对多关系
- 逻辑结构:数据元素之间的逻辑关系
- 物理结构(存储结构):数据结构在计算机中的表示(映像)。包括数据元素的表示和关系的表示。
- 数据元素之间的关系表示方法:顺序映像、非顺序映像。
- 两种存储结构:顺序存储结构、链式存储结构。
- 顺序映像特点:借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。
- 非顺序映像特点:借助指示元素存储地址的指针表示数据元素之间的逻辑关系。
- 算法的设计取决于选定的数据(逻辑结构)结构,算法的实现依赖于采用的存储结构。
- 数据类型是一个值的集合和定义在这个值集上的一组操作的总称。
- 高级程序语言中的数据类型分为两类:
- 非结构的原子类型:原子类型的值是不可分解的。
- 结构类型:结构类型的值由若干成分按某种结构组成,因此可以分解。
- 抽象数据类型:(ADT)一个数学模型(值域)及定义在该模型上(值域)的一组操作。
- 一个含抽象数据类型的软件模块应包含三部分:定义、表示、实现。
- 抽象数据类型有三种(后两种称统称为结构类型):
- 原子类型:原子类型的变量的值是不可分解的
- 固定聚合类型:值由确定数目的成分按某种结构组成
- 可变聚合类型:值的成分的数目不确定
- 算法:对特定问题求解步骤的一种描述。
- 算法的五个重要特性:
- 有穷性
- 确定性
- 可行性
- 输入
- 输出
- 算法由控制结构(顺序、分支和循环)和原操作(固有数据类型的操作)构成。
- 时间复杂度:随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同。T(n)=O(F(n))
- 空间复杂度:算法所需存储空间的度量。S(n)=O(f(n))