打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python | 手绘图说DFS与BFS

引言

深度优先遍历简称DFSDepth First Search),广度优先遍历简称BFSBreadth First Search),它们是遍历图当中所有顶点的两种方式。

本次以图解的形式来对图的深度遍历及广度遍历来进行阐述。

问题描述

在百度百科上关于图遍历的解释是:深度优先搜索法是树的先根遍历的推广。它的基本思想为,访问v0,然后选择一个与v0相邻且没被访问过的顶点vi访问,再从vi出发选择一个与vi相邻且未被访问的顶点vj进行访问,依次继续。如果当前被访问过的顶点的所有邻接顶点都已被访问,则退回到已被访问的顶点序列中最后一个拥有未被访问的相邻顶点的顶点w,从w出发按同样的方法向前遍历,直到图中所有顶点都被访问。 

图的广度优先搜索是树的按层次遍历的推广。它的基本思想是:首先访问初始点vi,并将其标记为已访问过,接着访问vi的所有未被访问过的邻接点vi1,vi2,, vi t,并均标记已访问过,然后再按照vi1,vi2,, vi t的次序,访问每一个顶点的所有未被访问过的邻接点,并均标记为已访问过,依次类推,直到图中所有和初始点vi有路径相通的顶点都被访问过为止。

是不是有点抽象难懂?没关系,就让我们以图解的形式逐个介绍。

首先是图的深度优先遍历DFS

然后是图的广度优先遍历BFS

结语

上述为图的深度优先遍历与广度优先遍历,图的遍历是图的一种基本操作,图的许多其它操作都是建立在遍历操作的基础之上。因此想要深入理解图的操作,首先就需要了解图的两个重要的遍历。

作者:文裕龙

实习编辑:李欣容

稿件来源:深度学习与文旅应用实验室(DLETA)

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
DFS与BFS的区别、用法、详解?
【Python算法】遍历(Traversal)、深度优先(DFS)、广度优先(BFS)
数据结构_图的邻接矩阵建立及其遍历_课程设计_实验报告
10种图算法直观可视化解释
算法之图搜索算法(一) | 董的博客
图的基本算法(BFS和DFS)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服