Python 判断 有向图 是否有环的实例讲解


Posted in Python onFebruary 01, 2018

实例如下:

import numpy
from numpy import *
def dfs( v ):
 vis[v] = -1
 flag = 0
 for i in range(n):
 # print (a[v][i],'---', vis[i] )
 if a[v][i] != 0 and vis[i] != -1:
  dfs(i)
  vis[i] = 1
 else:
  pass
 if a[v][i] != 0 and vis[i] == -1:
  print ('Yes, there is A loop in this network\n')
  global swi
  swi = True
  exit()
  return
  # break
 else:
  pass
 print ('s = 0')
 return False

global swi
swi = False
'''===装载数据'''
edges = numpy.loadtxt('9_nodes_with_r_edge_8_to_3.txt')

# edges = [ int(i) for i in edges]
bian = int(shape(edges)[0]) - 1
print (bian,'edges in the network \n')
print (shape(edges),'\n')

n = int( edges[0][1] )

c = int( edges[0][0] )
# n, c = input().split()
# n = int(n)
# c = int(c)
a = [([0] * n) for i in range(n)]
vis = [0] * c
for i in range(1, c+1):
 s, t = edges[i][0:2]
 # print (s,' - ', t )
 '''GO_OBO文件则 s, t 不需要 -1 '''
 s = int(s) - 1
 t = int(t) - 1
 # s = int(s)
 # t = int(t)
 a[s][t] = 1
# print (a)
# print (vis)
dfs(0)
# print (swi)
if not swi:
 print('No loop, DAG - DAG - DAG')

用到 numpy 模块,读取的 txt 文件为 有向图的连边,其中第一行 第一个数字 为 边的数量,第二个数字为 节点数 第二行及以后 前两个数字,第一个为 起点, 第二个为 落点。

以上这篇Python 判断 有向图 是否有环的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现根据窗口标题调用窗口的方法
Mar 13 Python
Python 结巴分词实现关键词抽取分析
Oct 21 Python
Python爬虫实例爬取网站搞笑段子
Nov 08 Python
python psutil库安装教程
Mar 19 Python
python中将zip压缩包转为gz.tar的方法
Oct 18 Python
python 杀死自身进程的实现方法
Jul 01 Python
python实现将文件夹内的每张图片批量分割成多张
Jul 22 Python
python Pandas如何对数据集随机抽样
Jul 29 Python
python利用dlib获取人脸的68个landmark
Nov 27 Python
python 实现一个反向单位矩阵示例
Nov 29 Python
Pytorch Tensor 输出为txt和mat格式方式
Jan 03 Python
python能否java成为主流语言吗
Jun 22 Python
python使用KNN算法手写体识别
Feb 01 #Python
python @property的用法及含义全面解析
Feb 01 #Python
详解Tensorflow数据读取有三种方式(next_batch)
Feb 01 #Python
Python3 XML 获取雅虎天气的实现方法
Feb 01 #Python
Python命令行解析模块详解
Feb 01 #Python
python2.7到3.x迁移指南
Feb 01 #Python
Python Paramiko模块的使用实际案例
Feb 01 #Python
You might like
简单了解WordPress开发中update_option()函数的用法
2016/01/11 PHP
Span元素的width属性无效果原因及解决方案
2010/01/15 Javascript
用JS提交参数创建form表单在FireFox中遇到的问题
2013/01/16 Javascript
基于MVC3方式实现下拉列表联动(JQuery)
2013/09/02 Javascript
jQuery 过滤方法filter()选择具有特殊属性的元素
2014/06/15 Javascript
第四章之BootStrap表单与图片
2016/04/25 Javascript
js 奇葩技巧之隐藏代码
2017/08/11 Javascript
Vue中的Vux配置指南
2017/12/08 Javascript
JS实现点击复选框变更DIV显示状态的示例代码
2017/12/18 Javascript
js+html实现点名系统功能
2019/11/05 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
JavaScript实现烟花绽放动画效果
2020/08/04 Javascript
[01:20:38]完美世界DOTA2联赛 GXR vs IO 第一场 11.07
2020/11/09 DOTA
python使用append合并两个数组的方法
2015/04/28 Python
Python自定义主从分布式架构实例分析
2016/09/19 Python
给你选择Python语言实现机器学习算法的三大理由
2017/11/15 Python
Python中类的初始化特殊方法
2017/12/01 Python
Python实现简单求解给定整数的质因数算法示例
2018/03/25 Python
如何安装多版本python python2和python3共存以及pip共存
2018/09/18 Python
python OpenCV GrabCut使用实例解析
2019/11/11 Python
Python创建空列表的字典2种方法详解
2020/02/13 Python
Python中求对数方法总结
2020/03/10 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
2020/08/26 Python
CSS3之边框多颜色Border-color属性使用示例
2013/10/11 HTML / CSS
一款纯css3实现的圆形旋转分享按钮旋转角度可自己调整
2014/09/02 HTML / CSS
Boden澳大利亚官网:英国在线服装公司
2018/08/05 全球购物
诺心蛋糕官网:LE CAKE
2018/08/25 全球购物
清华大学自主招生自荐信
2014/01/29 职场文书
《三顾茅庐》教学反思
2014/04/10 职场文书
综合实践活动总结
2014/05/05 职场文书
行政主管岗位职责范本
2015/04/09 职场文书
红色经典电影观后感
2015/06/18 职场文书
2015年音乐教学工作总结
2015/07/22 职场文书
2019年大学生职业生涯规划书
2019/03/25 职场文书
Vue+Flask实现图片传输功能
2022/04/01 Vue.js
Win11电脑显示本地时间与服务器时间不一致怎么解决?
2022/04/05 数码科技