博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图---DFS
阅读量:5055 次
发布时间:2019-06-12

本文共 654 字,大约阅读时间需要 2 分钟。

DFS是对图进行遍历的最基本的算法,前面将对树的遍历的时候,曾经讲过先序遍历,即根-左子树-右子树,这里DFS和先序遍历比较像。

DFS有两种写法:递归,迭代。

各有各的好处:递归写法比较简单,但是性能低一些; 迭代写法稍微复杂些,但是性能高一些。大家随情况进行抉择。

 

递归算法:

DFS(G,  v)    visited[ v ] ← yes    for  each all w in adjacency( G, v )        IF  visited[w]  ≠  yes            DFS(G, w)

 

 

迭代算法:

STACK svisited[ ]DFS(v)     push( s, v )     while not isEmpty( s )               v ← pop(s)              if not visited[v]                   visit( v )                   for each w in adjacency( v )                      if not visited[w]                                  push(s, w)

 

 

大家可以比较下DFS的迭代算法与BFS算法,步骤几乎一模一样,除了stack换成了queue

 

转载于:https://www.cnblogs.com/xfei-zhang/p/5086886.html

你可能感兴趣的文章
SVN服务器搭建和使用(三)(转载)
查看>>
Android 自定义View (三) 圆环交替 等待效果
查看>>
设置虚拟机虚拟机中fedora上网配置-bridge连接方式(图解)
查看>>
HEVC播放器出炉,迅雷看看支持H.265
查看>>
[置顶] Android仿人人客户端(v5.7.1)——人人授权访问界面
查看>>
Eclipse 调试的时候Tomcat报错启动不了
查看>>
【安卓5】高级控件——拖动条SeekBar
查看>>
ES6内置方法find 和 filter的区别在哪
查看>>
Android入门之文件系统操作(二)文件操作相关指令
查看>>
Android实现 ScrollView + ListView无滚动条滚动
查看>>
Swift 中的指针使用
查看>>
Swift - 使用闭包筛选过滤数据元素
查看>>
alue of type java.lang.String cannot be converted to JSONObject
查看>>
搜索引擎选择: Elasticsearch与Solr
查看>>
JAVA设计模式之简单工厂模式与工厂方法模式
查看>>
③面向对象程序设计——封装
查看>>
【19】AngularJS 应用
查看>>
Spring
查看>>
Linux 系统的/var目录
查看>>
Redis学习---Redis操作之其他操作
查看>>