知识地图
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基本思想:在插入第 i(i>1)个记录时,前面的 i-1 个记录已经排好序。 r1 r2 ri-1 ri ri+1 rn
……
……
有序序列 r'1 r'2
……
无序序列 r'i-1 r'i ri+1
……
rn
华南师范大学软件学院
数据结构与算法(C++描述)
8.2 插入排序
直接插入排序过程示例
r 0 1
21
⑶ 活动的最早开始时间e[i]
若活动ai是由弧<vk , vj>表示,则活动ai的最早开始时 间应等于事件vk的最早发生时间。因此,有: e[i]=ve[k]
⑷ 活动的最晚开始时间l[i]
若ai由弧<vk,vj>表示,则ai的最晚开始时间要保证事 件vj的最迟发生时间不拖后。因此,有:
l[i]=vl[j]-len<vk, vj>
二 叉 树 的 性 质
抽 象 数 据 类 型
二 叉 树 的 遍 历
顺 序 存 储 结 构
二 叉 链 表
三 叉 链 表
线 索 链 表
⑴前序遍历 ⑵后序遍历 ⑶层序遍历
⑴前序遍历 ⑴斜树 ⑵中序遍历 ⑵满二叉树 ⑶完全二叉树 ⑶后序遍历 ⑷层序遍历
⑴遍历操作的实现 ⑵其他算法
华南师范大学软件学院
数据结构与算法(C++描述)
知识地图7
查找技术
静态查找 动态查找
线性 表的 查找 技术 ⑴顺序查找 ⑵折半查找
散列 表的 查找 技术
散列函数 ⑴ 直接定址法 ⑵ 除留余数法 ⑶ 数字分析法 ⑷ 平方取中法 ⑸ 折叠法 处理冲突 ⑴开放定址法 ·线性探测法 ·二次探测法 ·随机探测法 ⑵拉链法
树表 的 查找 技术
⑴二叉排序树 ⑵平衡二叉树
压 缩 存 储 稀疏矩阵
华南师范大学软件学院
数据结构与算法(C++描述)
知识地图5
树结构
树
相互转换
二叉树
逻辑结构
存储结构
逻辑结构
存储结构
树 的 定
基 本 术
义
语
抽 象 数 据 类 型
树 的 遍 历
双 亲 表 示 法
孩 子 表 示 法
孩 子 兄 弟 表 示 法
二 叉 树 的 定 义
特 殊 的 二 叉 树
华南师范大学软件学院
数据结构与算法(C++描述)
6.5 有向无环图及其应用
⑴ 事件的最早发生时间ve[k] ve[k]是指从始点开始到顶点vk的最大路径长度。这 个长度决定了所有从顶点vk发出的活动能够开工的 最早时间。
vj vk
ve[1]=0 ve[k]=max{ve[j]+len<vj, vk>} (<vj, vk>∈p[k]) p[k]表示所有到达vk的有向边的集合
28
⑵ 事件的最迟发生时间vl[k] vl[k]是指在不推迟整个工期的前提下,事件vk允许的 最晚发生时间。
vj
vk
vj
vl[n]=ve[n] vl[k]=min{vl[j]-len<vk , vj>}(<vk, vj>∈s[k]) s[k]为所有从vk发出的有向边的集合
华南师范大学软件学院
数据结构与算法(C++描述)
华南师范大学软件学院
数据结构与算法(C++描述)
知识地图8
排序技术
插入排序
交换排序
选择排序
归并排序
分配排序
直 接 插 改进 入 排 序
希 尔 排 序
起 泡 排 改进 序
快 速 排 序
简 单 选 改进 择 排 序
堆 排 序
二 路 归 并 排 序
多 路 归 并 排 序
桶 基 式 数 排 改进 排 序 序
⑴ 排序过程 ⑵ 算法设计过程 ⑶ 时间复杂度 ⑷ 空间复杂度
华南师范大学软件学院
数据结构与算法(C++描述)
知识地图9
索引技术
线性索引
树形索引
稠 密 索 引
分 块 索 引
多 重 表
倒 排 表
2-3 树
B 树
B+ 树
⑴插入操作 ⑵删除操作 ⑶查找操作及性能
华南师范大学软件学院
题型与题量
数据结构与算法(C++描述)
vl[k]
e[i] l[i]
0 0 a0
4
6 a2 0
5
8 a3 6
0 0
0 2
3
6
6
7
7
10 16 14
华南师范大学软件学院
数据结构与算法(C++描述)
6.5 有向无环图及其应用
a0
e[i] l[i] 0 0
a1
0 2
a2 0
3
a3 6
6
a4
4 6
a5
5
a6
7 7
a7
7
a8
7
a9
a10
16 14
⑴单链表的特点 ⑵单链表类定义 ⑶基本操作的实 现及时间性能
华南师范大学软件学院
数据结构与算法(C++描述)
知识地图3
特殊线性表
栈
比较
队 列
逻辑结构
存储结构
逻辑结构
存储结构
⑴栈的定义 ⑵操作特性 ⑶ADT定义
顺 链 序 比较 栈 栈 ⑴基本操作的实现 ⑵时间性能
⑴队列定义 ⑵操作特性 ⑶ADT定义
华南师范大学软件学院
数据结构与算法(C++描述)
6.5 有向无环图及其应用
ve[k]=max{ve[j]+len<vj, vk>} v0 v1 6 v2 v3 v4 7 v5 7 v6 v7 v8
ve[k]
0
4
5
16 14 18
华南师范大学软件学院
数据结构与算法(C++描述)
6.5 有向无环图及其应用
华南师范大学软件学院
数据结构与算法(C++描述)
知识地图2
线性表
逻辑结构 存储结构
基 本 概 念
⑴线性表定义 ⑵逻辑特征
抽象 数据 类型 定义
⑴ADT定义 ⑵基本操作
顺 序 存 储
比较
链 接 存 储
其 他 存 储
⑴循环链表 ⑵双链表 ⑶静态链表 ⑷间接寻址
⑴顺序表的特点 ⑵顺序表类定义 ⑶基本操作的实 现及时间性能
…
rk
…
rn
交换 最小记录
r1 r2
……
ri-1
ri
ri+1 … ri
…
rn
华南师范大学软件学院
数据结构与算法(C++描述)
8.4 选择排序
简单选择排序示例
i=1
49 最小者 08 交换21,08 16 08 最小者 16 交换25,16 28 16 21 最小者 21 交换49,21 25 21
2
25
3
22 22 22 25 22 22
4
ห้องสมุดไป่ตู้10 10 10 10 25
5
25* 25* 25* 25* 25*
6
18 18
i=2
25 22 10 25 18
21 21 21 10 10
25
25 22 21 21
i=3 i=4
i=5 i=6
r[0]的作用?
18
暂存单元
18
监视哨
18
25
25*
18
华南师范大学软件学院
6.5 有向无环图及其应用
vl[k]=min{vl[j]-len<vk , vj>} v0 ve[k] vl[k] 0 0 v1 v2 4 6 v3 5 8 v4 7 7 v5 v6 v7 v8
6
6
7
16 14 18
10 16 14 18
华南师范大学软件学院
数据结构与算法(C++描述)
6.5 有向无环图及其应用
华南师范大学软件学院
数据结构与算法(C++描述)
6.5 有向无环图及其应用
e[i]=ve[k] l[i]=vl[j]-len<vk, vj> v0 ve[k] v1 6 6 a1 v2 v3 v4 7 7 a4 4 v5 v6 v7 v8 7 16 14 18 10 16 14 18 a5 a6 a7 a8 a9 a10 7 7 16 14 5 7 8
8
7
10 16 14
华南师范大学软件学院
数据结构与算法(C++描述)
8.2 插入排序
插入排序的主要操作是插入,其基本思想是: 每次将一个待排序的记录按其关键码的大小插 入到一个已经排好序的有序序列中,直到全部 记录排好序为止。
华南师范大学软件学院
数据结构与算法(C++描述)
8.2 插入排序
直接插入排序
华南师范大学软件学院
数据结构与算法(C++描述)
知识地图1
绪 论
数据结构
算 法
基 本 概 念
逻 辑 结 构
关系
存 储 结 构
基 本 概 念
算 法 分 析
⑴数据 ⑵数据元素 ⑶数据对象 ⑷ADT
⑴逻辑结构 ⑵数据结构 的分类
⑴存储结构 ⑵常用存储 方法
⑴算法 ⑵算法特性 ⑶评价算法 ⑷描述算法
⑴问题规模 ⑵基本语句 ⑶时间复杂度 ⑷大O记号
i=3 i=4
i=5 i=6
r[0]的作用?
18
暂存单元
18
监视哨
18
25
22
25*
25
18
25*
华南师范大学软件学院
数据结构与算法(C++描述)
8.4 选择排序
选择排序的主要操作是选择,其主要思想是: 每趟排序在当前待排序序列中选出关键码最小 的记录,添加到有序序列中。
有序序列 r1 r2
……
无序序列 ri-1 ri
21
25
28
i=2 i=3
08
25
49
08
16
49
28
华南师范大学软件学院
数据结构与算法(C++描述)
8.4 选择排序
简单选择排序示例
i=4
08 16 21 28 25 最小者 25 49 交换25,28
i=5
08
16
21
25
28
最小者 28 49 不交换
无序区只有 49 一个记录
08
16
21
25
循 链 环 比较 队 队 列 列
⑴基本操作的实现 ⑵时间性能
华南师范大学软件学院
数据结构与算法(C++描述)
知识地图4
多维数组 字符串
逻辑结构 逻辑结构 存储结构 ⑴数组的定义 ⑵基本操作 ⑶ADT定义 存储结构
⑴串的定义 ⑵基本概念 ⑶ADT定义
顺 序 存 储 模式匹配
顺 序 存 储
按 行 优 先 特殊矩阵 · 对称矩 阵 · 三角矩 阵 · 对角矩 寻址的计算方法 阵 按 列 优 先
知识地图6
图结构
逻辑结构
存储结构 经典应用
图 的 定 义
基 本 术 语
抽 象 数 据 类 型
图 的 遍 历
邻 接 矩 阵
邻 接 表
十 字 链 表
邻 接 多 重 表
最 小 生 成 树
最 短 路 径
拓 扑 排 序
关 键 路 径
⑴深度优先遍历 ⑵广度优先遍历
⑴遍历的实现 ⑵其他算法
华南师范大学软件学院
数据结构与算法(C++描述)
• • • • •
一、选择题(每题2分,共24分) 二、填空题(每题2分,共16分) 三、画图题(每题5分,共15分) 四、综合应用题(每题9分,共18分) 五、程序设计题(每题9分,共27分)
华南师范大学软件学院
数据结构与算法(C++描述)
6.5 有向无环图及其应用
关键路径
要找出关键路径,必须找出关键活动, 即不按期完成 就会影响整个工程完成的活动。 首先计算以下与关键活动有关的量: ⑴ 事件的最早发生时间ve[k] ⑵ 事件的最迟发生时间vl[k] ⑶ 活动的最早开始时间e[i] ⑷ 活动的最晚开始时间l[i] 最后计算各个活动的时间余量 l[k] - e[k],时间余量为 0者即为关键活动。
数据结构与算法(C++描述)
8.2 插入排序
直接插入排序过程示例
r 0 1
21
2
25
3
22 22 22 25 22 22 21
4
10 10 10 10 25
5
25* 25* 25* 25* 25*
6
18 18
i=2
25 22 10 25 18
21 21 21 10 10 10
25
25 22 21 21 18
……
……
有序序列 r'1 r'2
……
无序序列 r'i-1 r'i ri+1
……
rn
华南师范大学软件学院
数据结构与算法(C++描述)
8.2 插入排序
直接插入排序过程示例
r 0 1
21
⑶ 活动的最早开始时间e[i]
若活动ai是由弧<vk , vj>表示,则活动ai的最早开始时 间应等于事件vk的最早发生时间。因此,有: e[i]=ve[k]
⑷ 活动的最晚开始时间l[i]
若ai由弧<vk,vj>表示,则ai的最晚开始时间要保证事 件vj的最迟发生时间不拖后。因此,有:
l[i]=vl[j]-len<vk, vj>
二 叉 树 的 性 质
抽 象 数 据 类 型
二 叉 树 的 遍 历
顺 序 存 储 结 构
二 叉 链 表
三 叉 链 表
线 索 链 表
⑴前序遍历 ⑵后序遍历 ⑶层序遍历
⑴前序遍历 ⑴斜树 ⑵中序遍历 ⑵满二叉树 ⑶完全二叉树 ⑶后序遍历 ⑷层序遍历
⑴遍历操作的实现 ⑵其他算法
华南师范大学软件学院
数据结构与算法(C++描述)
知识地图7
查找技术
静态查找 动态查找
线性 表的 查找 技术 ⑴顺序查找 ⑵折半查找
散列 表的 查找 技术
散列函数 ⑴ 直接定址法 ⑵ 除留余数法 ⑶ 数字分析法 ⑷ 平方取中法 ⑸ 折叠法 处理冲突 ⑴开放定址法 ·线性探测法 ·二次探测法 ·随机探测法 ⑵拉链法
树表 的 查找 技术
⑴二叉排序树 ⑵平衡二叉树
压 缩 存 储 稀疏矩阵
华南师范大学软件学院
数据结构与算法(C++描述)
知识地图5
树结构
树
相互转换
二叉树
逻辑结构
存储结构
逻辑结构
存储结构
树 的 定
基 本 术
义
语
抽 象 数 据 类 型
树 的 遍 历
双 亲 表 示 法
孩 子 表 示 法
孩 子 兄 弟 表 示 法
二 叉 树 的 定 义
特 殊 的 二 叉 树
华南师范大学软件学院
数据结构与算法(C++描述)
6.5 有向无环图及其应用
⑴ 事件的最早发生时间ve[k] ve[k]是指从始点开始到顶点vk的最大路径长度。这 个长度决定了所有从顶点vk发出的活动能够开工的 最早时间。
vj vk
ve[1]=0 ve[k]=max{ve[j]+len<vj, vk>} (<vj, vk>∈p[k]) p[k]表示所有到达vk的有向边的集合
28
⑵ 事件的最迟发生时间vl[k] vl[k]是指在不推迟整个工期的前提下,事件vk允许的 最晚发生时间。
vj
vk
vj
vl[n]=ve[n] vl[k]=min{vl[j]-len<vk , vj>}(<vk, vj>∈s[k]) s[k]为所有从vk发出的有向边的集合
华南师范大学软件学院
数据结构与算法(C++描述)
华南师范大学软件学院
数据结构与算法(C++描述)
知识地图8
排序技术
插入排序
交换排序
选择排序
归并排序
分配排序
直 接 插 改进 入 排 序
希 尔 排 序
起 泡 排 改进 序
快 速 排 序
简 单 选 改进 择 排 序
堆 排 序
二 路 归 并 排 序
多 路 归 并 排 序
桶 基 式 数 排 改进 排 序 序
⑴ 排序过程 ⑵ 算法设计过程 ⑶ 时间复杂度 ⑷ 空间复杂度
华南师范大学软件学院
数据结构与算法(C++描述)
知识地图9
索引技术
线性索引
树形索引
稠 密 索 引
分 块 索 引
多 重 表
倒 排 表
2-3 树
B 树
B+ 树
⑴插入操作 ⑵删除操作 ⑶查找操作及性能
华南师范大学软件学院
题型与题量
数据结构与算法(C++描述)
vl[k]
e[i] l[i]
0 0 a0
4
6 a2 0
5
8 a3 6
0 0
0 2
3
6
6
7
7
10 16 14
华南师范大学软件学院
数据结构与算法(C++描述)
6.5 有向无环图及其应用
a0
e[i] l[i] 0 0
a1
0 2
a2 0
3
a3 6
6
a4
4 6
a5
5
a6
7 7
a7
7
a8
7
a9
a10
16 14
⑴单链表的特点 ⑵单链表类定义 ⑶基本操作的实 现及时间性能
华南师范大学软件学院
数据结构与算法(C++描述)
知识地图3
特殊线性表
栈
比较
队 列
逻辑结构
存储结构
逻辑结构
存储结构
⑴栈的定义 ⑵操作特性 ⑶ADT定义
顺 链 序 比较 栈 栈 ⑴基本操作的实现 ⑵时间性能
⑴队列定义 ⑵操作特性 ⑶ADT定义
华南师范大学软件学院
数据结构与算法(C++描述)
6.5 有向无环图及其应用
ve[k]=max{ve[j]+len<vj, vk>} v0 v1 6 v2 v3 v4 7 v5 7 v6 v7 v8
ve[k]
0
4
5
16 14 18
华南师范大学软件学院
数据结构与算法(C++描述)
6.5 有向无环图及其应用
华南师范大学软件学院
数据结构与算法(C++描述)
知识地图2
线性表
逻辑结构 存储结构
基 本 概 念
⑴线性表定义 ⑵逻辑特征
抽象 数据 类型 定义
⑴ADT定义 ⑵基本操作
顺 序 存 储
比较
链 接 存 储
其 他 存 储
⑴循环链表 ⑵双链表 ⑶静态链表 ⑷间接寻址
⑴顺序表的特点 ⑵顺序表类定义 ⑶基本操作的实 现及时间性能
…
rk
…
rn
交换 最小记录
r1 r2
……
ri-1
ri
ri+1 … ri
…
rn
华南师范大学软件学院
数据结构与算法(C++描述)
8.4 选择排序
简单选择排序示例
i=1
49 最小者 08 交换21,08 16 08 最小者 16 交换25,16 28 16 21 最小者 21 交换49,21 25 21
2
25
3
22 22 22 25 22 22
4
ห้องสมุดไป่ตู้10 10 10 10 25
5
25* 25* 25* 25* 25*
6
18 18
i=2
25 22 10 25 18
21 21 21 10 10
25
25 22 21 21
i=3 i=4
i=5 i=6
r[0]的作用?
18
暂存单元
18
监视哨
18
25
25*
18
华南师范大学软件学院
6.5 有向无环图及其应用
vl[k]=min{vl[j]-len<vk , vj>} v0 ve[k] vl[k] 0 0 v1 v2 4 6 v3 5 8 v4 7 7 v5 v6 v7 v8
6
6
7
16 14 18
10 16 14 18
华南师范大学软件学院
数据结构与算法(C++描述)
6.5 有向无环图及其应用
华南师范大学软件学院
数据结构与算法(C++描述)
6.5 有向无环图及其应用
e[i]=ve[k] l[i]=vl[j]-len<vk, vj> v0 ve[k] v1 6 6 a1 v2 v3 v4 7 7 a4 4 v5 v6 v7 v8 7 16 14 18 10 16 14 18 a5 a6 a7 a8 a9 a10 7 7 16 14 5 7 8
8
7
10 16 14
华南师范大学软件学院
数据结构与算法(C++描述)
8.2 插入排序
插入排序的主要操作是插入,其基本思想是: 每次将一个待排序的记录按其关键码的大小插 入到一个已经排好序的有序序列中,直到全部 记录排好序为止。
华南师范大学软件学院
数据结构与算法(C++描述)
8.2 插入排序
直接插入排序
华南师范大学软件学院
数据结构与算法(C++描述)
知识地图1
绪 论
数据结构
算 法
基 本 概 念
逻 辑 结 构
关系
存 储 结 构
基 本 概 念
算 法 分 析
⑴数据 ⑵数据元素 ⑶数据对象 ⑷ADT
⑴逻辑结构 ⑵数据结构 的分类
⑴存储结构 ⑵常用存储 方法
⑴算法 ⑵算法特性 ⑶评价算法 ⑷描述算法
⑴问题规模 ⑵基本语句 ⑶时间复杂度 ⑷大O记号
i=3 i=4
i=5 i=6
r[0]的作用?
18
暂存单元
18
监视哨
18
25
22
25*
25
18
25*
华南师范大学软件学院
数据结构与算法(C++描述)
8.4 选择排序
选择排序的主要操作是选择,其主要思想是: 每趟排序在当前待排序序列中选出关键码最小 的记录,添加到有序序列中。
有序序列 r1 r2
……
无序序列 ri-1 ri
21
25
28
i=2 i=3
08
25
49
08
16
49
28
华南师范大学软件学院
数据结构与算法(C++描述)
8.4 选择排序
简单选择排序示例
i=4
08 16 21 28 25 最小者 25 49 交换25,28
i=5
08
16
21
25
28
最小者 28 49 不交换
无序区只有 49 一个记录
08
16
21
25
循 链 环 比较 队 队 列 列
⑴基本操作的实现 ⑵时间性能
华南师范大学软件学院
数据结构与算法(C++描述)
知识地图4
多维数组 字符串
逻辑结构 逻辑结构 存储结构 ⑴数组的定义 ⑵基本操作 ⑶ADT定义 存储结构
⑴串的定义 ⑵基本概念 ⑶ADT定义
顺 序 存 储 模式匹配
顺 序 存 储
按 行 优 先 特殊矩阵 · 对称矩 阵 · 三角矩 阵 · 对角矩 寻址的计算方法 阵 按 列 优 先
知识地图6
图结构
逻辑结构
存储结构 经典应用
图 的 定 义
基 本 术 语
抽 象 数 据 类 型
图 的 遍 历
邻 接 矩 阵
邻 接 表
十 字 链 表
邻 接 多 重 表
最 小 生 成 树
最 短 路 径
拓 扑 排 序
关 键 路 径
⑴深度优先遍历 ⑵广度优先遍历
⑴遍历的实现 ⑵其他算法
华南师范大学软件学院
数据结构与算法(C++描述)
• • • • •
一、选择题(每题2分,共24分) 二、填空题(每题2分,共16分) 三、画图题(每题5分,共15分) 四、综合应用题(每题9分,共18分) 五、程序设计题(每题9分,共27分)
华南师范大学软件学院
数据结构与算法(C++描述)
6.5 有向无环图及其应用
关键路径
要找出关键路径,必须找出关键活动, 即不按期完成 就会影响整个工程完成的活动。 首先计算以下与关键活动有关的量: ⑴ 事件的最早发生时间ve[k] ⑵ 事件的最迟发生时间vl[k] ⑶ 活动的最早开始时间e[i] ⑷ 活动的最晚开始时间l[i] 最后计算各个活动的时间余量 l[k] - e[k],时间余量为 0者即为关键活动。
数据结构与算法(C++描述)
8.2 插入排序
直接插入排序过程示例
r 0 1
21
2
25
3
22 22 22 25 22 22 21
4
10 10 10 10 25
5
25* 25* 25* 25* 25*
6
18 18
i=2
25 22 10 25 18
21 21 21 10 10 10
25
25 22 21 21 18