基础
什么是数据结构
互相存在一种或多种关系的数据元素的集合
逻辑结构
- 集合 —— 较松散的元素关系
- 线性结构 —— 一对一的元素关系
- 树结构 —— 一对多的元素关系
- 图结构 —— 多对多的元素关系
存储结构
- 顺序(数组)
把逻辑上相邻的元素存储在在物理相邻的存储单元中,结点间的逻辑关系由存储单元的邻接关系实现 - 链式(指针或引用类型)
元素上的逻辑关系通过附设的指针字段实现,不要求物理相邻 - 索引(主要针对数据内容的存储,不强调关系,面向查找操作)
存储节点信息时建立附加的索引表,表中的每一项包含关键字和地址 - 散列
一数据元素的关键字为自变量,通过某个(散列函数)计算出其存储位置
数据的运算
- 引用型 —— 不改变数据结构中原有数据元素的状态,仅根据需求读取信息
- 加工型 —— 直接加工数据结构中原有的信息状态
算法
- 与程序相似但仍有区别:算法是对问题的解法,程序是算法在机器上的特定实现
- 特性:有穷性、确定性、可行性、输入、输出
算法的分析 & 度量
【常用 计算时间、所需存储空间】来评价算法的优劣
- 时间复杂度
- 空间复杂度
算法从运行开始到结束所需要的存储量
包括两个部分:
- 固定部分 —— 与所需处理的数据无关,主要包括算法所需的代码、常量等
- 可变部分 —— 与所需处理的数据有关