深度优先搜索的演示学习法——BlackBlank平台应用教学案例
来源:互联网 发布:勇士队球员数据 编辑:程序博客网 时间:2024/05/16 05:58
深度优先搜索的演示学习法——BlackBlank平台应用教学案例
1.DFS简介
深度优先搜索,简称DFS,属于图算法的一种,英文全称为Depth First Search。其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,每个节点只能访问一次。
2.深度优先搜索之演示过程
下图是一张无向图,亦是一棵二叉树,我们将对它进行DFS遍历。
如果你想看动态演示,请点击如下链接:
BlackBlank之DFS
按照如下的顺序遍历:
1.0->1->3->7,此时已到尽头,回溯将成为不二选择。
2.返回到3后遍历到8,又是尽头,继续回溯。
3.回溯到1,以此类推,下面遍历到的节点分别是4,9,10,2,5,6。
4.遍历完毕。
3.深度优先搜索之问题案例
3.1.举例
给出如下所示的图,问从图中的标号为0的节点出发,是否存在一条路径长度为4的搜索路径。
3.2.处理过程
即找到一条路径长度为4 的搜索路径。
3.3.对应例子的C++代码
#include "jsoncppheader.h"#include <string>DirectedGraphTracer tracer = DirectedGraphTracer();LogTracer logger = LogTracer();int G[11][11] = { {0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};void DFS(int node,int parent) { if(parent != -1) tracer.visit(node, parent).wait(); for (int i = 0; i < 11; i++) { if (G[node][i]) { DFS(i, node); } }}int main(){ tracer.setTreeData(G[0], 11, 11, 0); tracer.attach(logger.id); DFS(0, -1);}
4.结语
借助BlackBlank网站,我们清晰地为大家演示了DFS算法的过程,展现了她的原貌,展现了递归之美。感兴趣的读者也可以点击进入http://www.blackblank.cn/大显身手,让数据结构和算法在你的屏幕上跃然起舞。
阅读全文
0 0
- 深度优先搜索的演示学习法——BlackBlank平台应用教学案例
- 深度优先搜索的演示学习法——BlackBlank平台应用教学案例
- ReviewForJob——深度优先搜索的应用
- 深度优先搜索的学习
- 数据结构----深度优先搜索的应用
- 深度优先搜索算法的应用
- 【数据结构】安卓平台下深度优先搜索的应用--走迷宫
- 深度优先搜索学习
- ReviewForJob——深度优先搜索的应用----【0】README1)本文旨在 介绍 ReviewForJob——深度优先搜索的应用 及其 源码实现 ;2)搜索树的技术分为广度优先搜索
- 重学数据结构系列之——图的遍历(广度优先搜索和深度优先搜索)学习来源:计蒜客
- 搜索——深度优先搜索
- 深度优先算法学习 案例
- DFS深度优先搜索案例:马戏团叠罗汉
- DFS深度优先搜索案例:马戏团叠罗汉
- 算法——基本的图算法:广度优先搜索、深度优先搜索
- 第22章:图的基本算法—广度优先搜索和深度优先搜索
- 数据结构——图的邻接矩阵的深度优先搜索
- 数据结构——图的邻接矩阵的深度优先搜索
- nginx配置文件关键字整理
- 【书籍】机器学习入门
- maven常见问题问答(含maven属性、变量)
- 虚拟机centos连接网络
- Docker原理第三话--CGroups
- 深度优先搜索的演示学习法——BlackBlank平台应用教学案例
- BZOJ2286:消耗战(虚树,树形dp)
- 快速幂
- Apache Shiro简介
- 迷宫问题
- 使用C#开发数据库应用系统_使用ListView控件展示数据
- 我的秘密武器—Git
- QT5 学习记录 QSerialPort 类实现串口调试工具
- EXTJS6.0 饼图图例显示以及百分比显示