经典指数          
原因
491
浏览数
0
收藏数
 

对于无向图,其广度优先搜索的算法思想如下: 1) 从图中某个顶点v出发,访问v,并置visited[v]的值为true,然后将v入队。 2) 只要队列不空,则重复下述过程 (1) 队头顶点u出队。 (2) 依次检查u的所有邻接点w,如果visited[w]的值为false,则访问w,并置visited[w]的值为true,然后将w入队。 下面是基于邻接矩阵表示的图的广度优先搜索算法,试补充完整。 # define MV _ Num 3 00  //最大顶点数 # define Max _ Int 65532 //表示极大值,即∞ typedef char Vertex _ Type; //假设顶点的数据类型为字符型 typedef int Arc _ Type; //假设边的权值类型为整型 typedef struct { Vertex _ Type vexs[MV _ Num]; //顶点表 Arc _ Type arcs[MV _ Num][MV _ Num]; //邻接矩阵 int vexnum,arcnum; //图的顶点数和边数 }AM _ Graph; void BFS _ Traverse (AM _ Graph G R ) { for ( v=0; v< G R .vexnum; ++v ) visited[v]=FALSE; ; InitQueue(Q); //置空的辅助队列Q for ( v=0; v< G R .vexnum; ++v ) if ( visited[v] = FALSE; ) { visited[v] = TRUE; cout<

     举报   纠错  
 
切换
1 个答案
第二个不应该是visited[v]==FALSE吗?
 
切换
撰写答案
扫描后移动端查看本题