DFS:使用栈保存未被检测的结点,结点按照深度优先的次序被访问并依次被压入栈中,并以相反的次序出栈进行新的检测。

类似于树的先根遍历
深搜例子:走迷宫,你没有办法用分身术来站在每个走过的位置。不撞南山不回头。

DFS思想:

一直往深处走,直到找到解或者走不下去为止

BFS:使用队列保存未被检测的结点。结点按照宽度优先的次序被访问和进、出队列。
类似于树的按层次遍历的过程

广搜例子:你的眼镜掉在地上以后,你趴在地板上找。你总是先摸最接近你的地方,如果没有,再摸远一点的地方……

BFS思想:
1.从初始状态S开始,利用规则,生成下一层的状态。
2.顺序检查下一层的所有状态,看是否出现目标状态G。
否则就对该层所有状态节点,分别利用规则。生成再下一层的所有状态节点。
3.继续按上面思想生成再下一层的所有状态节点,这样一层一层往下展开。直到出现目标状态为止。

按层次的顺序来遍历搜索树

最新文章

  1. Python黑帽编程 4.0 网络互连层攻击概述
  2. Android editview 设置只能输入数字、字母和汉字
  3. CSS书写规范及顺序
  4. sklearn分类
  5. target标签对于优化用户体验的作用
  6. android 自定义控件(初篇)
  7. Template、ItemsPanel、ItemContainerStyle、ItemTemplate
  8. NOI2008假面舞会
  9. 【转】以XML文件方式保存用户数据——2013-08-25 22
  10. mysql嵌套查询
  11. python的数与字符串
  12. gc内存回收机制
  13. VS2010使用静态编译的qt库
  14. 基于.net开发chrome核心浏览器【三】
  15. 【Netty】源码分析目录
  16. 学习Git过程中常用命令的总结
  17. HTML页面空格记录     (小计)
  18. 项目开发版本控制----Git
  19. sqler sql 转rest api 源码解析(三) rest协议
  20. java安装1.8的经验和Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVers问题处理

热门文章

  1. Huffman编码(测试源代码)
  2. iOS 网络监测
  3. 项目中Gradle使用总结
  4. 合理利用gradle的占位符功能
  5. 连接linux数据库Oracle时报错ORA-12541: TNS: 无监听程序
  6. linux系统下,查看端口号被哪个应用占用
  7. sass在mac中安装
  8. Swift处理堆栈问题——给定两组序列,其中一个序列表示栈的push 顺序,判断另一个序列有没有可能是对应的pop 顺序
  9. Ionic2学习笔记
  10. C#交错数组的用法