DFS

  广度优先一层一层遍历,每一层得到的所有新节点,要用队列存储起来以备下一层遍历的时候再遍历。

  而深度优先遍历搜索在得到一个新节点时立即对新节点进行遍历;从节点0出发开始遍历,得到新节点6时,立马对新节点6进行遍历,得到新节点4;如此反复以这种方式遍历新节点,直到没有新节点了。此时返回。返回到根节点0的情况是,继续对根节点0进行遍历,得到新节点2,然后继续上述步骤。

  从一个节点出发,使用DFS对一个图进行遍历时,能够遍历到的节点都是从初始节点可达的,DFS常用来求解这种可达性问题。

在程序实现DFS时需要考虑以下问题:

  • 栈:用栈来保存当前节点的信息,当遍历新节点返回时能够继续遍历当前节点,可以使用递归栈。
  • 标记:和BFS一样同样需要对已经遍历过的节点进行标记。

最新文章

  1. Java - NIO
  2. UVA 12544 - Beehives O(nm) 无向图最小环
  3. JDK8+Dubbo2.5.2实践
  4. 近几日小学flare3d,
  5. HttpClient4.5 SSL访问工具类
  6. Windows Phone的简单学习
  7. HDU 1698 & UESTC 1228 Just a hook
  8. sensor BMA250源代码执行分析
  9. 【字符串排序,技巧!】UVa 10905 - Children’s Game
  10. nodejs读取本地txt文件并输出到浏览器
  11. 怎样通过git协作开发
  12. laravel 请求request 接收参数
  13. zabbix3.4.7利用Windows性能监视器监控各项资源指标
  14. JavaBasic_11
  15. fork调用的底层实现
  16. QT textBrowser 使用
  17. JS基础---常见的Bom对象
  18. scrapy框架系列 (3) Item Pipline
  19. 【TensorFlow】tf.nn.embedding_lookup函数的用法
  20. nginx location 指令意义

热门文章

  1. jquery 父,子,兄弟节点获取
  2. js用逗号分隔字符串,保留双引号中的字符串
  3. js 将时间戳转成时间格式化
  4. delphi 10.3 控件遮挡 webbrowser
  5. Postman—cookie
  6. webkit内核的浏览器常见7种分别是..
  7. Linux内核设计与实现 总结笔记(第十五章)进程地址空间
  8. 解决报错(Could not create connection to database server.)
  9. 【bzoj4136】[FJOI2015]带子串包含约束LCS问题
  10. 大数据与mysql