当前位置:   article > 正文

寻找有向图的环_输入n条有向路径,求形成的环数

输入n条有向路径,求形成的环数

在DFS中,递归调用的栈是记录当前正在遍历的有向路径如果找到一条边v->w并且w在栈中,此时就找到一个环,因为在栈中表示的是一条从w到v的有向路径,加上v->w,构成一个环。

  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <iostream>
  4. #include <stack>
  5. using namespace std;
  6. struct node /* 图顶点结构定义 */
  7. {
  8. int vertex; /* 顶点数据信息 */
  9. struct node *nextnode; /* 指下一顶点的指标 */
  10. };
  11. const int vertexnum = 4; /*顶点的数目*/
  12. const int instance = 5;
  13. typedef struct node *graph; /* 图形的结构新型态 */
  14. struct node head[vertexnum+1]; /* 图形顶点数组 */
  15. int visited[vertexnum+1]; /* 遍历标记数组 */
  16. int id[vertexnum+1]; /*标记连通分量的编号*/
  17. int edgeto[vertexnum+1]; /*标记节点前继*/
  18. int onstack[vertexnum+1]; /*标记栈中节点*/
  19. int count = 0; /*连通分量编号*/
  20. int edgenum = 0; /*边的数目*/
  21. /********************根据已有的信息建立邻接表********************/
  22. void cr
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/64589
推荐阅读
相关标签
  

闽ICP备14008679号