[C] 图的广度优先遍历 →→→→→进入此内容的聊天室

来自 , 2020-12-09, 写在 C, 查看 144 次.
URL http://www.code666.cn/view/ef41d488
  1. void BFSTraverse ( Graph G, Status ( *Visit ) ( int v ) )
  2. {/*按广度优先非递归遍历图G。使用辅助队列Q 和访问标志数组visited*/
  3.         for ( v=0; v<G,vexnum; ++v )
  4.                 visited[v]=FALSE
  5.                            InitQueue ( Q ); /*置空的国债队列Q*/
  6.         if ( !visited[v] ) /*v 尚未访问*/
  7.         {
  8.                 EnQucue ( Q,v ); /*v 入队列*/
  9.                 while ( !QueueEmpty ( Q ) )
  10.                 {
  11.                         DeQueue ( Q,u ); /*队头元素出队并置为u*/
  12.                         visited[u]=TRUE;
  13.                         visit ( u ); /*访问u*/
  14.                         for ( w=FistAdjVex ( G,u ); w; w=NextAdjVex ( G,u,w ) )
  15.                                 if ( !visited[w] ) EnQueue ( Q,w ); /*u 的尚未访问的邻接顶点w 入队列Q*/
  16.                 }
  17.         }
  18. }/*BFSTraverse*/
  19.  

回复 "图的广度优先遍历"

这儿你可以回复上面这条便签

captcha