分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
Boolean visited[MAX_VERTEX_NUM]; //访问标志数组。Status (*VisitFunc)(int v); //VisitFunc是访问函数,对图的每个顶点调用该函数。void BFSTraverse (Graph G, Status(*Visit)(int v)) //图的广度优先遍历。{ VisitFunc = Visit; for(v=0; v<G.vexnum, ++v) visited[v] = FALSE; initQueue(Q); //置空辅助队列Q。 for(v=0; v<G.vexnum; ++v) if(!visited[v]) { visited[v]=TRUE; VisitFunc(v); EnQueue(Q, v); //v入队列 while(!QueueEmpty(Q)) { DeQueue(Q, u); //队首元素出队并置为u。 for(w=FirstAdjVex(G,u); w>=0; w=NextAdjVex(G,u,w)) if(!Visited[w]) //w为u的尚未访问的邻接顶点。 { Visited[w]=TRUE; VisitFunc(w); EnQueue(Q, w); } } }}