赞
踩
在DFS中,递归调用的栈是记录当前正在遍历的有向路径如果找到一条边v->w并且w在栈中,此时就找到一个环,因为在栈中表示的是一条从w到v的有向路径,加上v->w,构成一个环。
- #include <stdlib.h>
- #include <stdio.h>
- #include <iostream>
- #include <stack>
- using namespace std;
- struct node /* 图顶点结构定义 */
- {
- int vertex; /* 顶点数据信息 */
- struct node *nextnode; /* 指下一顶点的指标 */
- };
- const int vertexnum = 4; /*顶点的数目*/
- const int instance = 5;
- typedef struct node *graph; /* 图形的结构新型态 */
- struct node head[vertexnum+1]; /* 图形顶点数组 */
- int visited[vertexnum+1]; /* 遍历标记数组 */
- int id[vertexnum+1]; /*标记连通分量的编号*/
- int edgeto[vertexnum+1]; /*标记节点前继*/
- int onstack[vertexnum+1]; /*标记栈中节点*/
- int count = 0; /*连通分量编号*/
- int edgenum = 0; /*边的数目*/
-
- /********************根据已有的信息建立邻接表********************/
- void cr
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。