算法简介:图遍历----深度优先搜索(DFS)与广度优先搜索(BFS)
算法简介
图遍历
1. 图定义
简单的说,图就是由一些小圆点(称为顶点)和连接这些小圆点的直线(称为边)组成的.
2. 图分类
图可以分为无向图和有向图
- 无向图
- 有向图
3. 图遍历算法
1. 深度优先搜索(DFS)
图遍历DFS思想
首先以一个未被访问过的顶点作为起始顶点,沿当前顶点的边走到未访问过的顶点;当没有未访问过的顶点时,则回到上一个顶点,继续试探访问别的顶点,直到所有的顶点都被访问过.显然,深度优先遍历是沿着图的某一条分支遍历直到末端,然后回溯,再沿着另一条进行同样的遍历,直到所有的顶点都被访问过为止.
图例简介
以上面无向图示例,DFS的搜索路径为下图:
DFS搜索的路线为:1->2->4->3->5
代码地址
2.广度优先搜索(BFS)
图遍历BFS思想
首先以一个未被访问过的顶点作为起始顶点,访问其所有相邻的顶点,然后对每个相邻的顶点,再访问它们相邻的未被访问过的顶点,直到所有顶点都被访问过,遍历结束.
图例简介
以上面无向图示例,BFS的搜索路径为下图:
BFS搜索的路径为:1->2->3->5->4