DFS 算法
思想:一直往深处走,直到找到解或者走不下去为止
1 | DFS(dep,...) //dep代表目前DFS的深度 |
BFS 算法
通常用队列(先进先出FIFO)实现
1 | 初始化队列Q. |
DFS :使用栈保存未被检测的结点,结点按照深度优先的次序被访问并依次被压入栈中,并以相反的次序出栈进行新的检测。
- 似于树的先根遍历
- 深搜例子:走迷宫,你没有办法用分身术来站在每
个走过的位置。不撞南山不回头。
BFS :使用队列保存未被检测的结点。结点按照宽度优先的次序被访问和进出队列。
- 类似于树的按层次遍历的过程
- 广搜例子:你的眼镜掉在地上以后,你趴在地板上找。
你总是先摸最接近你的地方,如果没有,再摸远一-
点的地方….