参考:

http://www.cnblogs.com/kubixuesheng/p/4399705.html

http://www.cnblogs.com/dolphin0520/archive/2011/07/13/2105236.html

 

 

图的深度优先遍历递归算法大概如下:

 1 //访问标志数组
 2 int visited[MAX] = {0};
 3 
 4 //用邻接表方式实现深度优先搜索(递归方式)
 5 //v 传入的是第一个需要访问的顶点
 6 void DFS(MGraph G, int v)
 7 {
 8     //图的顶点的搜索指针
 9     ArcNode *p;
10     //置已访问标记
11     visited[v] = 1;
12     //输出被访问顶点的编号
13     printf("%d  ", v);
14     //p指向顶点v的第一条弧的弧头结点
15     p = G.vertices[v].firstarc;
16     while (p != NULL)
17     {
18         //若p->adjvex顶点未访问,递归访问它
19         if (visited[p->adjvex] == 0)
20         {
21             DFS(G, p->adjvex);
22         }
23         //p指向顶点v的下一条弧的弧头结点
24         p = p->nextarc;
25     }
26 }
View Code

相关文章:

  • 2021-10-28
  • 2022-12-23
  • 2022-12-23
  • 2021-12-27
  • 2021-12-27
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-23
相关资源
相似解决方案