深度优先搜索(Depth-First Search / DFS)
- 深度优先搜索,从起点出发,从规定的方向中选择其中一个不断地向前走,直到无法继续为止,然后尝试另外一种方向,直到最后走到终点;
- DFS 解决的是连通性的问题,即给定两个点,一个是起始点,一个是终点,判断是不是有一条路径能从起点连接到终点;
- 必须依赖栈,特点是“后进先出”
广度优先搜索(Breadth-First Search / BFS)
- 广度优先搜索,一般用来解决最短路径的问题;
- 广度优先的搜索是从起始点出发,一层一层地进行,每层当中的点距离起始点的步数都是相同的,当找到了目的地之后就可以立即结束;
- 依赖队列,特点是先进先出;