图论入门三:图的遍历

图的遍历:

图建构好后,针对具体的问题,我们常常需要通盘的读取图中的信息,包括顶点(vertex)和边(edge),以及它们之间的关系。这种读取图中所有信息的方法就是图的遍历(traversal),也称为搜索(search),就是从图中某个顶点出发,沿着一些边访问图中所有的顶点,且使每个顶点仅被访问一次。遍历是很多图论算法的基础。

(1)图和树的遍历 

树的遍历是从根节点开始的,由于每个节点都只有一个双亲,因此其遍历还是相对简单的。而图的遍历则可以选择从任意一个节点开始,同时图中每一个节点都可能与其余的节点相邻接,不可避免的会多次访问同一个节点,因此在遍历的过程中需要将已访问的节点打上标记,以避免重复。 

(2)遍历的方法 

遍历有2个著名的方法:深度优先搜索(DFS, depth first search)和广度优先搜索(BFS, breadth first search)。

深度优先和广度优先分别使用了stack和queue两种数据结构,得到了不同的遍历顺序。

(3)遍历的时间复杂度 

关于图遍历的时间复杂度。对于一个图来说,不管我们使用什么样的图存储结构和搜索方法,该图中的各个顶点(vertex)和各条边(edge)都是必须要搜索到的。因此,遍历一个图的时间复杂度至少是O(V+E)级别的,V,E分别表示顶点和边的数量。 
当然,这里的遍历指的是用来访问图中每个节点的。但有时候,我们其实只需要寻找某个特定节点或某一类节点,对于这种搜索,我们也可以通过设计高效的算法来大大提高搜索效率。

【传送门】

图论入门一:图的基本概念

图论入门二:树的基本概念

图论入门三:图的遍历

图论入门四:BFS与DFS

图论入门五:邻接表与邻接矩阵

图论入门六:哥尼斯堡七桥问题

图论入门七:最小生成树

图论入门八:Kruskal算法

图论入门九:Prim算法

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值