算法简介:图遍历----深度优先搜索(DFS)与广度优先搜索(BFS)

算法简介:图遍历----深度优先搜索(DFS)与广度优先搜索(BFS)

图遍历

1. 图定义

简单的说,图就是由一些小圆点(称为顶点)和连接这些小圆点的直线(称为边)组成的.

2. 图分类

图可以分为无向图和有向图

  • 无向图
    在这里插入图片描述
  • 有向图
    在这里插入图片描述

3. 图遍历算法

1. 深度优先搜索(DFS)

图遍历DFS思想

首先以一个未被访问过的顶点作为起始顶点,沿当前顶点的边走到未访问过的顶点;当没有未访问过的顶点时,则回到上一个顶点,继续试探访问别的顶点,直到所有的顶点都被访问过.显然,深度优先遍历是沿着图的某一条分支遍历直到末端,然后回溯,再沿着另一条进行同样的遍历,直到所有的顶点都被访问过为止.

图例简介

以上面无向图示例,DFS的搜索路径为下图:
在这里插入图片描述
DFS搜索的路线为:1->2->4->3->5

代码地址

图遍历DFS—无向图和有向图

2.广度优先搜索(BFS)

图遍历BFS思想

首先以一个未被访问过的顶点作为起始顶点,访问其所有相邻的顶点,然后对每个相邻的顶点,再访问它们相邻的未被访问过的顶点,直到所有顶点都被访问过,遍历结束.

图例简介

以上面无向图示例,BFS的搜索路径为下图:
在这里插入图片描述
BFS搜索的路径为:1->2->3->5->4

代码地址

图遍历BFS—无向图

发布了155 篇原创文章 · 获赞 15 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/wangdamingll/article/details/105384100