数据结构与算法基础概念及核心要素
该思维导图总结了数据结构与算法的基本概念。首先阐述了数据的概念,包括数据、数据对象、数据元素和数据项及其层级关系;其次,详细介绍了数据类型(基本类型、构造类型、抽象数据类型),数据结构(逻辑结构:线性结构和非线性结构;存储结构:顺序、链式、索引、散列),以及数据操作;然后定义了算法,并分析了其特性、评价准则、描述方法和复杂度(时间/空间复杂度);最后,指出了数据结构与算法之间的密切关系:数据结构是算法的基础,算法是数据结构发挥作用的舞台,不同的数据结构实现同一算法,效率可能差异巨大。
源码
# 数据结构与算法基础概念及核心要素
## 数据
### 数据 Data
#### 定义
* 所有能输入到计算机中并被程序处理的符号的总称
### 数据对象 Data Object
#### 定义
* 性质相同的数据元素的集合
### 数据元素(Data Element)
#### 定义
* 数据中的一个个体,最基本单位
### 数据项(Data Item)
#### 定义
* 组成数据元素的不可分割的最小单位
### 层级关系
* 数据 > 数据对象 > 数据元素 > 数据项
## 数据类型
### 定义
* 一个值上的集合和定义在这个值集上的一组操作的值总称
### 分类
#### 基本类型
* 整型
* 浮点型
* 字符型
#### 构造类型
* 数组
* 结构体
* 联合
* 指针
* 枚举型
* 自定义
#### 抽象数据类型(ADT)
* 用户定义的数学模型
* 形式:ADT = (D, S, T)
* D: 数据对象
* S: 上关系有限集
* T: D上的基本操作有限集
* 定义格式
* ADT 名称
* 数据对象: <数据对象的定义>
* 数据关系: <数据关系的定义>
* 基础操作: <基本操作的定义>
## 数据结构
### 定义
#### 定义一
* 相互存在特定关系的数据元素集合
#### 定义二
* 按特定逻辑关系组织的数据
### 逻辑结构
#### 数据元素的抽象关系
##### 线性结构
* 特点:有且仅有一个开始和一个终端结点
* 示例:线性表,栈,队列,串
##### 非线性结构
* 特点:一个结点可有多个前趋和后继
* 示例:集合,树形结构,图状或网状结构
### 存储结构(物理结构)
#### 存储方法
* 顺序存储方法
* 链式存储方法
* 索引存储
* 散列存储
### 数据操作(运算)
* 规定的一组操作方法
## 算法
### 定义
* 由若干条指令组成的解决特定问题的有穷序列
### 重要特性
* 有穷性
* 确定性
* 可行性
* 输入数据
* 输出数据
### 评价准则
* 正确性
* 可读性
* 易维护性
* 健壮性
* 高效率与低存储量
### 算法描述
* 返回值类型
* 算法对应函数名
* 形参列表
### 复杂度分析
#### 空间复杂度
* 在运行过程中占用的临时空间大小
#### 时间复杂度 T(n)
* 影响因素
* 算法策略
* 问题规模
* 程序编写语言
* 编译器生成的机器代码质量
* 机器执行指令速度
* 估计方法
* 事前分析估算法
* 事后统计方法
## 数据结构与算法
### 关系
* 数据结构是算法的基石
* 算法是数据结构发挥作用的舞台
* 可基于不同数据结构实现的算法,效率可能不同
图片