有向图找环

#include
//蓝桥第9届 c语言c组第9题
//小朋友的崇拜圈 
//有向图找环 dfs
using namespace std;
int map[100][100]={0}; //邻接矩阵 
int visit[100]={0}; // 状态数组 
int path[100];     //环的元素 
int m=0;

int v=30; //点的个数 


/*
	visit数组表示当前点的状态
	0 表示还没访问过
	1 表示正在访问
	-1 表示访问结束 

*/
void dfs(int k){
	visit[k]=1;//正在访问 
	path[m++]=k;
	for(int i=1;i<=v;i++){
		
		if(map[k][i]==1){//2个点之间有边 
			
			if(visit[i]==0){
				dfs(i);	  //递归去访问 
			}
			if(visit[i]==1){ //出现环 打印出来 
			cout<<"环:";
				for(int j=m-1;;j--){
					cout<

你可能感兴趣的:(蓝桥杯)