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两个内置函数 locals 和globals(学习笔记)
Aug 28 Python
python编程实现归并排序
Apr 14 Python
浅谈django开发者模式中的autoreload是如何实现的
Aug 18 Python
浅谈python中的占位符
Nov 09 Python
Python实现求解括号匹配问题的方法
Apr 17 Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
May 04 Python
python Django编写接口并用Jmeter测试的方法
Jul 31 Python
Python 读取xml数据,cv2裁剪图片实例
Mar 10 Python
在pytorch中动态调整优化器的学习率方式
Jun 24 Python
Python使用xlrd实现读取合并单元格
Jul 09 Python
基于python实现简单C/S模式代码实例
Sep 14 Python
对pytorch中x = x.view(x.size(0), -1) 的理解说明
Mar 03 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
zend framework框架中url大小写问题解决方法
2014/08/19 PHP
PHP使用Mysql事务实例解析
2014/09/08 PHP
PHP中常用的输出函数总结
2014/09/22 PHP
php+mysql结合Ajax实现点赞功能完整实例
2015/01/30 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
2019/02/14 PHP
JS异常处理的一个想法(sofish)
2013/03/14 Javascript
js加入收藏以及使用Jquery更改透明度
2014/01/26 Javascript
基于node实现websocket协议
2016/04/25 Javascript
使用 bootstrap modal遇到的问题小结
2016/11/09 Javascript
JavaScript中数组Array.sort()排序方法详解
2017/03/01 Javascript
jquery点赞功能实现代码 点个赞吧!
2020/05/29 jQuery
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
使用 Node.js 模拟滑动拼图验证码操作的示例代码
2017/11/02 Javascript
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
2017/11/28 Javascript
JS兼容所有浏览器的DOMContentLoaded事件
2018/01/12 Javascript
在vue项目中使用Nprogress.js进度条的方法
2018/01/31 Javascript
Vue-input框checkbox强制刷新问题
2019/04/18 Javascript
使用 JavaScript 创建并下载文件(模拟点击)
2019/10/25 Javascript
JavaScript实现横版菜单栏
2020/03/17 Javascript
[02:55]2018DOTA2国际邀请赛勇士令状不朽珍藏Ⅲ饰品一览
2018/08/01 DOTA
Python中实现常量(Const)功能
2015/01/28 Python
Python迭代器定义与简单用法分析
2018/04/30 Python
python微信公众号之关键词自动回复
2018/06/15 Python
详解一种用django_cache实现分布式锁的方式
2019/09/01 Python
django中的图片验证码功能
2019/09/18 Python
python 图像的离散傅立叶变换实例
2020/01/02 Python
python中执行smtplib失败的处理方法
2020/07/01 Python
Merrell迈乐澳大利亚网站:购买户外登山鞋
2017/05/28 全球购物
Opodo意大利:欧洲市场上领先的在线旅行社
2019/10/24 全球购物
高校教师岗位职责
2014/03/18 职场文书
干部职工纪律作风整改措施思想汇报
2014/10/11 职场文书
专业技术人员年度考核评语
2014/12/31 职场文书
2015应届毕业生求职信范文
2015/03/20 职场文书
2015年公共机构节能宣传周活动总结
2015/03/26 职场文书
不同意离婚代理词
2015/05/23 职场文书
捐书仪式主持词
2015/07/04 职场文书