[本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.youkuaiyun.com/jesson20121020]
算法描述:
设图G的初始状态是所有顶点均未被访问过,在G中的任选一顶点vi为初始出发点,则广度优先遍历 可定义如下:首先,访问初始出发点vi,接着依次访问vi的所有邻接点w1,w2,...,wk;然后,依次访问w1,w2,...,wk 的邻接的所有未被访问过的顶点,依次类推,直到图中所有的和初始点vi有路径相通的顶点都被访问过为止。
算法实现:
(1) 访问初始顶点vi
(2) 置顶点v已访问标记
(3) 顶点v入队
(4) while(队不空){
取出队首顶点i;
依次搜索顶点i的所有的邻接点;
如果未被访问,则访问该邻接点,并将其入队。
}
用邻接矩阵实现图的广度优先遍历的源代码如下:
/**
* 广度遍历图
**/
void BFS_MG(MGraph MG,int s){
//清空访问标

本文介绍了如何使用C语言实现图的广度优先遍历算法,包括算法描述、具体实现步骤以及时间复杂度分析。通过邻接矩阵和邻接表两种方式详细阐述了遍历过程,并提供了完整的源代码。
最低0.47元/天 解锁文章
5874

被折叠的 条评论
为什么被折叠?



