当前课程知识点:数据结构(上) > 第六章 图 > (d)深度优先搜索 > 06D-6 多可达域
如果你还记得
我们对广度优先遍历算法
bfs的处理手法
就不难发现
我们完全可以效仿那种做法
在这样的dfs算法之外
再包装一层循环
来枚举图中的所有顶点
这样的话就可以无一遗漏地
遍历图中的所有顶点
而且只要我们处理得当
对所有可达域的遍历
都不会彼此有所重叠
从而在时间效率上
也依然可以得到保证
那么这部分内容
我们留给大家 在课后自己完成
从效果上看
经过这样的一个封装以后
我们或许应该会继而从顶点D出发
也就是在第11秒发现顶点D
并接下来发现一条跨越边
再接下来 在第12秒发现顶点E
而且同样地
我们会在顶点E和顶点f之间
标记出另一条跨越边
最终 在第13秒结束对顶点E的访问
并在第14秒结束对最终一个顶点
也就是顶点d的访问
至此整个这幅有向图的
深度优先遍历过程
也就顺利结束
我们不妨来盘点一下
遍历所获得的成果
首先是这些粗边
它们构成了两棵遍历树
整体地构成了一个遍历森林
此外 我们还对所有未被采纳的边
进行了分类
有的被分为是跨越边
有的被归入为前向边
而有的被归类为后向边
无一例外 无一遗漏
在通过遍历所获得的所有这些信息中
遍历树或者说遍历森林
无疑是最为重要的
然而相对于原图
它们毕竟只不过是一个子集
这样一个子集所携带的
难道是原图的所有信息吗?
从某种意义上讲 的确是这样的
而其中至关重要的一点就在于
我们通过遍历不仅获得了这样一棵树
而且为每一个顶点都标记了dTime
和fTime两类时间标签
而这两类时间标签的作用
是非常巨大的
这种作用之大远远超过你的直观想象
-选课之前
--写在选课之前
--宣传片
-考核方式
--考核方式
-OJ系统说明
--关于OJ
--1-注册与登录
--2-界面与选课
--3-提交测试
-关于课程教材与讲义
--课程教材与讲义
-关于讨论区
--关于讨论区
-微信平台
--html
-PA晋级申请
--PA晋级
-(a)计算
--演示
--(a)计算--作业
-(b)计算模型
-(b)计算模型--作业
-(c)大O记号
-(c)大O记号--作业
-(d)算法分析
-(d)算法分析--作业
-(e)迭代与递归
-(e)迭代与递归--作业
-(xc)动态规划
-- 演示
-(xc)动态规划--作业
-本章测验--作业
-(a)接口与实现
--02A-5 复制
-(a)接口与实现--作业
-(b)可扩充向量
-(b)可扩充向量--作业
-(c)无序向量
--02C-1 概述
--02C-3 插入
--02C-6 查找
--02C-8 遍历
-(c)无序向量--作业
-(d1)有序向量:唯一化
-(d1)有序向量:唯一化--作业
-(d2)有序向量:二分查找
-(d2)有序向量:二分查找--作业
-(d3)有序向量:Fibonacci查找
-(d3)有序向量:Fibonacci查找--作业
-(d4)有序向量:二分查找(改进)
-(d4)有序向量:二分查找(改进)--作业
-(d5)有序向量:插值查找
-第二章 向量(下)--(d5)有序向量:插值查找
-(e)起泡排序
--02E-2 改进
--02E-3 反例
-(e)起泡排序--作业
-(f)归并排序
-(f)归并排序--作业
-本章测验--作业
-(a)接口与实现
--03A-4 实现
-(a)接口与实现--作业
-(b)无序列表
--03B-2 查找
-(b)无序列表--作业
-(c)有序列表
--03C-3 查找
-(c)有序列表--作业
-(d)选择排序
--03D-1 构思
--03D-2 实例
--03D-3 实现
--03D-4 推敲
--03D-6 性能
-(d)选择排序--作业
-(e)插入排序
--03E-1 经验
--03E-2 构思
--03E-3 对比
--03E-4 实例
--03E-5 实现
-(e)插入排序--作业
-(xd)习题辅导:LightHouse
-本章测验--作业
- (a)栈接口与实现
--04A-1 栈
--04A-2 实例
--04A-3 实现
- (a)栈接口与实现--作业
-(c1)栈应用:进制转换
-第四章 栈与队列--(c1)栈应用:进制转换
-(c2)栈应用:括号匹配
-(c2)栈应用:括号匹配--作业
-(c3)栈应用:栈混洗
-第四章 栈与队列--(c3)栈应用:栈混洗
-(c4)栈应用:中缀表达式求值
-(c4)栈应用:中缀表达式求值--作业
-(c5)栈应用:逆波兰表达式
-第四章 栈与队列--(c5)栈应用:逆波兰表达式
-(d)队列接口与实现
--04D-1 接口
--04D-2 实例
--04D-3 实现
-第四章 栈与队列--本章测验
-(a)树
--05A-1 动机
--05A-2 应用
-(a)树--作业
-(b)树的表示
--05B-2 父亲
--05B-3 孩子
-第五章 二叉树--(b)树的表示
-(c)二叉树
-(c)二叉树--作业
-(d)二叉树实现
-(d)二叉树实现--作业
-(e1)先序遍历
-(e1)先序遍历--作业
-(e2)中序遍历
-第五章 二叉树--(e2)中序遍历
-(e4)层次遍历
-第五章 二叉树--(e4)层次遍历
-(e5)重构
-(e5)重构--作业
-本章测验--作业
-(a)概述
-(a)概述--作业
-(b1)邻接矩阵
-(b1)邻接矩阵--作业
-(c)广度优先搜索
--06C-2 策略
--06C-3 实现
--06C-5 实例
-(c)广度优先搜索--作业
-(d)深度优先搜索
--06D-1 算法
--06D-2 框架
--06D-3 细节
-(d)深度优先搜索--作业
-第六章 图--本章测验