Expm 9_1 有向图中环的判断问题
【问题描述】
给定一个有向图,要求使用深度优先搜索策略,判断图中是否存在环。
package org.xiu68.exp.exp9;
public class Exp9_1 {
//用深度优先搜索判断图中是否存在环
public static void main(String[] args) {
// TODO Auto-generated method stub
int[][] graph=new int[][]{
{0,1,1,0},
{0,0,0,1},
{0,0,0,1},
{0,0,0,0}
};
checkCircle(graph,4);
int[][] graph1=new int[][]{
{0,1,1,0},
{0,0,0,1},
{0,0,0,1},
{1,0,0,0}
};
checkCircle(graph1,4);
}
public static void checkCircle(int[][] graph,int vexNum){
//boolean[] visited=new boolean[vex.length];
//每一个结点有3种状态,若为-1,则表示没访问过,若为0,则表示其后代结点正在被访问中
//若为1表示结点已经访问完成
int[] color=new int[vexNum];
for(int i=0;i<color.length;i++)
color[i]=-1;
DFS(graph,0,color);
}
public static void DFS(int[][] graph,int v,int[] color){
if(color[v]==0){ //存在环
System.out.println("图中存在环");
return;
}else if(color[v]==-1){ //没搜索到该结点
color[v]=0; //记录为正在搜索中
for(int i=0;i<color.length;i++){
if(graph[v][i]==1)
DFS(graph,i,color);
}
color[v]=1; //结点v搜索完毕
}
}
}
Expm 9_1 有向图中环的判断问题的更多相关文章
- LOJ-10106(有向图欧拉回路的判断)
题目链接:传送门 思路: (1)将每个单词视为有向路径,单词的起始字母是起始节点,末尾字母是终止节点,然后找由字母建立的有向图 是否是欧拉图或者半欧拉图. (2)先用并查集判断是否连通,再判断入度与出 ...
- 15-Call to your teacher(有向图的连通判断)
链接:https://www.nowcoder.net/acm/contest/76/F来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K ...
- Expm 9_2 有向图的强连通分量问题
[问题描述] 给定一个有向图,设计一个算法,求解并输出该图的各个强连通分量. package org.xiu68.exp.exp9; import java.util.ArrayList; imp ...
- ZOJ 2475 Benny's Compiler(dfs判断有向图给定点有没有参与构成环)
B - Benny's Compiler Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu ...
- poj 2337(单向欧拉路的判断以及输出)
Catenyms Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11648 Accepted: 3036 Descrip ...
- 有向图和无向图的数组C++实现
源码:https://github.com/cjy513203427/C_Program_Base/tree/master/55.%E5%9B%BE 结点类Noded.h 不需要存储索引 #pragm ...
- linux死锁检测的一种思路【转】
转自:http://www.cnblogs.com/mumuxinfei/p/4365697.html 前言: 上一篇博文讲述了pstack的使用和原理. 和jstack一样, pstack能获取进 ...
- linux死锁检测的一种思路
前言: 上一篇博文讲述了pstack的使用和原理. 和jstack一样, pstack能获取进程的线程堆栈快照, 方便检验和性能评估. 但jstack功能更加的强大, 它能对潜在的死锁予以提示, 而p ...
- poj 1386 Play on Words 有向欧拉回路
题目链接:http://poj.org/problem?id=1386 Some of the secret doors contain a very interesting word puzzle. ...
随机推荐
- 【codevs4919】线段树练习4
题目大意:维护一个长度为 N 的序列,支持两种操作:区间加,区间查询有多少数是 7 的倍数. 题解:在每个线段树中维护一个权值数组 [0,6],由于个数显然支持区间可加性,因此可用线段树来维护. 代码 ...
- 12: MyBatis之传入参数parameterType
源链接地址:http://blog.csdn.net/liaoxiaohua1981/article/details/6862764
- kubernetes控制器之DaemonSet
转载于https://blog.csdn.net/bbwangj/article/details/82867472 什么是 DaemonSet? DaemonSet 确保全部(或者一些)Node 上运 ...
- java常用的运算符
Java 语言中常用的运算符可分为如下几种: Ø 算术运算符 Ø 赋值运算符 Ø 比较运算符 Ø 逻辑运算符 Ø 条件运算符
- java代码示例(4—1(作业))
package com.java.union4; import static org.junit.Assert.*; import org.junit.Test; public class Demo ...
- 解决编译安装php时报错:Please reinstall the iconv library
编译安装php7时报错“Please reinstall the iconv library”,也就是让重新安装iconv库.但yum安装又提示“No package libiconv availab ...
- Study 5 —— 流程控制
if 条件: 满足条件后要执行的代码else: if条件不满足就执行这里 #_*_coding:utf-8_*_ ------------------------------------------- ...
- collectd使用
1.什么是collectd collectd是一款基于C语言研发的插件式架构的监控软件,它可以收集各种来源的指标,如操作系统,应用程序,日志文件和外部设备,并存储此信息或通过网络提供.这些统计数据可用 ...
- POJ - 1019 Number Sequence (思维)
https://vjudge.net/problem/POJ-1019 题意 给一串1 12 123 1234 12345 123456 1234567 12345678 123456789 1234 ...
- idea_2018.1.5版本的激活使用
1:步骤help中找到register,然后按如下截图操作 注册码: K71U8DBPNE-eyJsaWNlbnNlSWQiOiJLNzFVOERCUE5FIiwibGljZW5zZWVOYW1lIj ...