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实现调用其他python脚本的方法
Oct 05 Python
详解Python中的join()函数的用法
Apr 07 Python
python基于BeautifulSoup实现抓取网页指定内容的方法
Jul 09 Python
在Python的Django框架的视图中使用Session的方法
Jul 23 Python
Python中import导入上一级目录模块及循环import问题的解决
Jun 04 Python
python 环境变量和import模块导入方法(详解)
Jul 11 Python
python实现音乐下载的统计
Jun 20 Python
Python OpenCV处理图像之图像像素点操作
Jul 10 Python
python使用matplotlib画饼状图
Sep 25 Python
python3+PyQt5 实现Rich文本的行编辑方法
Jun 17 Python
解决使用python print打印函数返回值多一个None的问题
Apr 09 Python
python 常用日期处理-- datetime 模块的使用
Sep 02 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
PHP与SQL注入攻击[二]
2007/04/17 PHP
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
2014/09/27 PHP
php图片的二进制转换实现方法
2014/12/15 PHP
php魔术函数__call()用法实例分析
2015/02/13 PHP
PHP中的魔术方法总结和使用实例
2015/05/11 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
PHP反射实际应用示例
2019/04/03 PHP
有效的捕获JavaScript焦点的方法小结
2009/10/08 Javascript
ExtJs使用总结(非常详细)
2012/03/22 Javascript
jQuery 下拉列表 二级联动插件分享
2012/03/29 Javascript
jQuery性能优化28条建议你值得借鉴
2013/02/16 Javascript
angularjs学习笔记之完整的项目结构
2015/09/26 Javascript
浅析JavaScript 箭头函数 generator Date JSON
2016/05/23 Javascript
jQuery电话号码验证实例
2017/01/05 Javascript
Bootstrap Table使用整理(一)
2017/06/09 Javascript
使用Dropzone.js上传的示例代码
2017/10/10 Javascript
JavaScript作用域、闭包、对象与原型链概念及用法实例总结
2018/08/20 Javascript
angular4中引入echarts的方法示例
2019/01/29 Javascript
深入浅出了解Node.js Streams
2019/05/27 Javascript
Vue.js获取手机系统型号、版本、浏览器类型的示例代码
2020/05/10 Javascript
vue-cli或vue项目利用HBuilder打包成移动端app操作
2020/07/29 Javascript
element-ui中el-upload多文件一次性上传的实现
2020/12/02 Javascript
python opencv实现任意角度的透视变换实例代码
2018/01/12 Python
Python基于sklearn库的分类算法简单应用示例
2018/07/09 Python
查看keras的默认backend实现方式
2020/06/19 Python
Python使用pyexecjs代码案例解析
2020/07/13 Python
SHEIN香港:价格实惠的女性时尚服装
2018/08/14 全球购物
计算机科学与技术应届生求职信
2013/11/07 职场文书
共筑中国梦演讲稿
2014/04/23 职场文书
优秀党员学习焦裕禄精神思想汇报范文
2014/09/10 职场文书
个人四风问题整改措施思想汇报
2014/10/04 职场文书
史上最牛的辞职信
2015/02/28 职场文书
让世界充满爱观后感
2015/06/10 职场文书
高中语文教材(文学文化常识大全一)
2019/08/13 职场文书
详解Javascript实践中的命令模式
2021/05/05 Javascript
MySQL主从切换的超详细步骤
2022/06/28 MySQL