搜索---DFS
2024-10-07 10:37:09
DFS
广度优先一层一层遍历,每一层得到的所有新节点,要用队列存储起来以备下一层遍历的时候再遍历。
而深度优先遍历搜索在得到一个新节点时立即对新节点进行遍历;从节点0出发开始遍历,得到新节点6时,立马对新节点6进行遍历,得到新节点4;如此反复以这种方式遍历新节点,直到没有新节点了。此时返回。返回到根节点0的情况是,继续对根节点0进行遍历,得到新节点2,然后继续上述步骤。
从一个节点出发,使用DFS对一个图进行遍历时,能够遍历到的节点都是从初始节点可达的,DFS常用来求解这种可达性问题。
在程序实现DFS时需要考虑以下问题:
- 栈:用栈来保存当前节点的信息,当遍历新节点返回时能够继续遍历当前节点,可以使用递归栈。
- 标记:和BFS一样同样需要对已经遍历过的节点进行标记。
最新文章
- Java - NIO
- UVA 12544 - Beehives O(nm) 无向图最小环
- JDK8+Dubbo2.5.2实践
- 近几日小学flare3d,
- HttpClient4.5 SSL访问工具类
- Windows Phone的简单学习
- HDU 1698 &; UESTC 1228 Just a hook
- sensor BMA250源代码执行分析
- 【字符串排序,技巧!】UVa 10905 - Children’s Game
- nodejs读取本地txt文件并输出到浏览器
- 怎样通过git协作开发
- laravel 请求request 接收参数
- zabbix3.4.7利用Windows性能监视器监控各项资源指标
- JavaBasic_11
- fork调用的底层实现
- QT textBrowser 使用
- JS基础---常见的Bom对象
- scrapy框架系列 (3) Item Pipline
- 【TensorFlow】tf.nn.embedding_lookup函数的用法
- nginx location 指令意义