【数据结构导论】图(二)

【数据结构基础篇】图(一)

前面一篇博客介绍了关于图的基本概念和存储问题,这篇博客将就遍历问题、最小生成树问题和单源最短路径问题作讨论,恳请大家多多指导。

遍历

图的遍历从字面理解即可:逐一访问图中的每一个顶点,不漏不重。

深度优先

1、选定图中的一个顶点,可记作V i
2、选中的顶点V i为第一个访问点;
3、任选一个和V i相连且没有被访问的顶点去访问;
4、重复2/3步骤,直至以V i顶点为首的一条线被访问完;
5、重复以上步骤,直至图中所有顶点均被访问。

广度优先

1、选定图中的一个顶点,可记作V i
2、再访问V i之后,一次访问和Vi相连的顶点;
3、依次从与顶点V i相连的顶点出发,并按照广度优先原则遍历和V i相连的顶点;
4、重复以上步骤,直至图中所有顶点均被访问。

温馨提示

很明显,无论是深度还是广度,结果都不是唯一的。

最小生成树

最小生成树要求在遍历的基础上,做到权值最小。

Prim

步骤

1、初始化
G=(V,E)是一个带权图,生成的最小生成树为MinT=(V,T);其中V是顶点的集合,T为边的集合;
初始化:U=( u 0),T=(),其中U是已经参加到计算最小生成树的顶点集合。 u 0可以是原始带权图中的任一顶点。
2、从V中取任意一点,记作 V 0,放到U中作第一个参与计算的顶点。
3、从所有u∈U,v∈V-U构成的边(u,v)中,选出最小的边(u',v'),将这条边加入集合T中,将顶点v'加入集合U中。
4、重复3直至U=V。

One Word

Prim算法就是不断从V中取出顶点,并且选出这些顶点之间权值最小的路径,直至所有的顶点都从V中取出。

图例


PS

Kruskal

步骤

One Word

图示

PS

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值