数据结构
第一章 绪论
1.1 基本概念
1.1.1 概念与术语
- 数据项:构成数据元素的最小单位
- 数据元素:数据的基本单位
- 数据对象:相同性质的数据元素的集合
- 数据结构:相互之间存在一种或多种特定关系的数据元素的集合
算法设计取决于所选的逻辑结构
算法实现依赖于所用的存储结构 - 数据类型:一个值的集合和定义在此集合的一组操作的总称(数据元素)
1)原子类型:不可分的
2)结构类型:可以再分为若干成分的 - 抽象数据类型:抽象数据组织与相关操作(数据结构)
1.1.2 三要素
- 逻辑结构:描述数据元素逻辑关系,与存储无关
1)线性结构:只有一对一关系
一般线性表
受限线性表:栈和队列、串
线性表推广:数组
2)非线性结构:存在其他关系
集合结构
树形结构:一般树、二叉树
图状结构:有向图、无向图 - 数据运算:根据逻辑结构与实际需求定义基本运算
运算定义针对逻辑结构表明功能
运算实现针对存储结构表明操作步骤 - 物理结构(存储结构):数据元素的表示与关系的表示
1)顺序存储:逻辑相邻物理相邻
2)链式存储:借助指针
不同结点的存储空间可以不连续,存储单元地址必须连续
3)索引存储:借助索引表
4)散列存储:元素关键字计算
1.2 算法和算法评价
1.2.1 算法的基本概念
- 算法:是对求解问题步骤的描述,指令的有限序列
程序=数据结构+算法
数据结构是要处理的信息,算法是处理信息的步骤 - 算法五个特性
1)有穷性:有穷步骤、有穷时间
2)确定性:相同输入相同输出
3)可行性:可通过已有的基本操作实现
4)输入:零个或多个输入
5)输出:一个或多个输出 - 好算法的特质
1)正确性:算法结果不一定对,要求对
2)可读性:易理解
3)健壮性:对异常情况处理
4)高效率低存储需求:时间、空间复杂度低
1.2.2 算法效率的度量
- 时间复杂度
1)概念
找到基本操作(最深层循环)
分析操作执行次数x与问题规模n之间函数关系
x的数量级O(x)就是时间复杂度
2)规则
加法取最大,乘法要相乘
比较:常对幂指阶
3)三种情况
最坏时间复杂度
平均时间复杂度
最好时间复杂度 - 空间复杂度
1)概念
分析空间大小与问题规模的函数关系
注:递归算法找到其深度与各层所需空间大小
2)规则同上
第二章
2.1 线性表的定义和基本操作
2.1.1 线性表的定义
线性表是具有相同数据类型的n个数据元素的有限序列
最后修改 2022.8.7