龙空技术网

java-dfs算法介绍以及计算两点间路径的代码示例

旭哥charles 91

前言:

而今咱们对“dfs算法例题”大约比较关切,姐妹们都想要知道一些“dfs算法例题”的相关内容。那么小编在网上网罗了一些对于“dfs算法例题””的相关资讯,希望咱们能喜欢,姐妹们快快来学习一下吧!

本系列主要介绍使用dfs、bfs以及dijkstras算法进行路径计算。本篇文章主要是介绍dfs这种算法和具体示例源码进行展示。

dfs

DFS算法中文意思为深度优先搜索算法,就是沿着一条路,一直递归搜索遍历,也就是传说中的一条道走到黑 。具体是它沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。

深度优先搜索在搜索过程中访问某个顶点后,需要递归地访问此顶点的所有未访问过的相邻顶点。

初始条件下所有节点为白色,选择一个作为起始顶点,按照如下步骤遍历:

a. 选择起始顶点涂成灰色,表示还未访问

b. 从该顶点的邻接顶点中选择一个,继续这个过程(即再寻找邻接结点的邻接结点),一直深入下去,直到一个顶点没有邻接结点了,涂黑它,表示访问过了

c. 回溯到这个涂黑顶点的上一层顶点,再找这个上一层顶点的其余邻接结点,继续如上操作,如果所有邻接结点往下都访问过了,就把自己涂黑,再回溯到更上一层。

d. 上一层继续做如上操作,知道所有顶点都访问过。

代码示例

核心:dfs(深度优先搜索算法)主要是依赖栈的数据存取特性(先进后出)实现全节点数据的深度搜索遍历。

界面效果展示

以上是本算法的简单展示,由于篇幅问题有需要详细了解的同学可以评论区告诉我哦~

标签: #dfs算法例题